将多个数据帧中的行包含到新的数据帧中

2024-06-16 11:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大约20个数据帧,我的目标是特定行的值。例如,我展示了一个数据帧的简化版本

    Type   N1   N2
    43     121  455
    23     554  52
    85     74   615

我想从我的数据集中得到每个“类型”23的行

我试过下面给出的代码,但输出是一些垃圾

dataf = pd.DataFrame()
for x in [df1,df2,...df20]:
    data = x.loc[x['Type']==23]
dataf.append(data)

我希望有一个新的数据帧,它的列与N1和N2的列相同,并且具有所选行的值

预期的新数据帧:

    N1   N2
    554  52
    153  87  and so on..

Tags: 数据代码in版本类型目标dataframefor
2条回答

我认为:

df_list = [df1,df2, ...,df20]
filtered_df_list = [ df[df['Type'] == 23] for df in df_list ] #Filter each mini-df on "Type" = 23

final_df = pd.concat(filtered_df_list) # Concat the small mini-dfs (hence faster concatenating)

根据数据帧的大小,它可以更高效、更省时,但这是可以证明的。如果你和我们分享一些数据,这样我就可以做,或者如果你想自己做,我对答案很感兴趣

在筛选之前,使用^{}组合数据帧:

dfc = pd.concat([df1, df2, ..., df20])
dataf = dfc[dfc.Type == 23][['N1', 'N2']]

有一点取决于你的管道看起来是什么样的,有可能你可以在第一次读取数据帧的时候就把它们组合起来

相关问题 更多 >