【问题标题】:Subset each dataframe in array and store as new dataframe object each time in a loop对数组中的每个数据框进行子集化,并在每次循环中存储为新的数据框对象
【发布时间】:2021-10-20 23:34:48
【问题描述】:

我目前在 Pandas 中有 5 个数据框:a、b、c、d 和 e。这些文件中的每一个都有一个“时间”列,我希望只提取“时间”= 0 的行。

我知道的最直接的方法是简单的子集化,例如:

a_base = a[a['time']==0]

但是,我正在寻找一种更好的方法,然后为每个数据帧复制同一行 5 次。循环遍历数据框名称的数组意味着我每次都必须创建一个新变量。有没有更好的方法来减少代码行数?

【问题讨论】:

  • 您是否尝试过将其作为列表理解?只需将所有数据框放入一个列表并遍历它们以获得您的子集。结果将是另一个列表,您可以提取为a_base, b_base, c_base, d_base, e_base = subset_list

标签: python pandas dataframe subset


【解决方案1】:

这取决于你想对结果做什么。数据框有多大等。如果您只使用一次,您可能根本不需要将结果分配给另一个数据框。您可以使用可调用索引,如

a.loc[lambda x:x['time']==0]

这将过滤您的数据框,您可以链接任何您想要的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 2020-09-23
    • 2020-12-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2020-03-27
    • 2022-01-09
    相关资源
    最近更新 更多