Python 以有效的方式比较多个数据帧的总和

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

我有多个熊猫数据帧(5)和一些常用名称索引。它们有不同的尺寸。我需要对每个数据帧中至少5个不同的通用
列名称进行求和(总共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”。我为自己工作。现在,我只需要对列进行比较就可以看到差异。谢谢。