Python 以有效的方式比较多个数据帧的总和
我有多个熊猫数据帧(5)和一些常用名称索引。它们有不同的尺寸。我需要对每个数据帧中至少5个不同的通用Python 以有效的方式比较多个数据帧的总和,python,pandas,list,if-statement,Python,Pandas,List,If Statement,我有多个熊猫数据帧(5)和一些常用名称索引。它们有不同的尺寸。我需要对每个数据帧中至少5个不同的通用列名称进行求和(总共25个),然后比较求和 Data: df_files = [df1, df2, df3, df4, df5] df_files out: [ z name ... a b 0 10 DAD ... 4 4 1
列名称进行求和(总共25个),然后比较求和
Data:
df_files = [df1, df2, df3, df4, df5]
df_files
out:
[ z name ... a b
0 10 DAD ... 4 4
1 10 DAD ... 5 4
2 10 DAD ... 3 6
3 10 DAD ... 9 2
4 10 DAD ... 11 1
... ... ... ... ... ...
7495 <NA> NaN ... 2 0
7496 <NA> NaN ... 5 3
7497 <NA> NaN ... 3 1
7498 <NA> NaN ... 2 0
7499 <NA> NaN ... 4 3
[7500 rows x 35 columns] #The dataframes are like this type but some vary in size.
或者可以将它们作为整数列表进行比较
请注意这个问题。我希望我说的是具体的。如果我正确理解了您的问题,您需要将数据帧和相应列的名称放在一个位置,以比较总和。在这种情况下,我通常使用字典来保留变量的名称,如下所示:
Example:
df = pd.concat([df1["a"].sum(), df2["a"].sum(), df3["a"].sum(), df4["a"].sum(), df5["a"].sum()])
df
out:
a a a a a
0 425 425 426 427 425
df_files = {'df1':df1, 'df2':df2, 'df3':df3, 'df4':df4, 'df5':df5}
summary = pd.DataFrame()
for df in df_files.keys():
cols = list(summary)
summary= pd.concat([summary, df_files[df].sum()], axis=1)
summary.columns = cols + [df]
summary = summary.dropna()
摘要将是一个数据框,常用列名作为索引,数据框名称作为列。如果您只有5个dfs和5个常用列名,那么观察结果将是一件容易的事情。以下是我为3个dfs运行的示例结果:
df1 df2 df3
a 6.0 10.0 6.0
b 15.0 14.0 15.0
但是,如果数字增加,您可以使用每行的“模式”来查找最频繁的结果,并比较行(可能分割所有值并查找非1结果)[file['A'].sum().values for file in df_files]
?请显示而不是告诉我们您当前的数据和所需的结果。人类的语言往往不精确。看。@是克里斯,谢谢你的回答。我猜会是这样的:[file['A'].values.sum()用于df_文件中的文件]
。但是我怎样才能完成比较呢?谢谢你回答“Yashar”。我为自己工作。现在,我只需要对列进行比较就可以看到差异。谢谢。