在多个DataFrame上检索唯一的列名称,并将其全部追加到列表中

问题描述 投票:0回答:2

[任务描述

我想在多个DataFrame中检索列名称,并将唯一名称附加到列表中。以下代码将第一列名称附加到列表中,但是我不确定如何检索其余DataFrame的不同列名称并将其附加到desiredlist。任何想法都很棒!

alldf = [df, df1, df2, df3, df4]

for index, dataframe in enumerate(alldf):
    desiredlist = []
    a = dataframe.columns.values.tolist()
    desiredlist.append(a)

DataFrame的示例

  df

       ID    AA  TA  TL
Date                      
2001  a   1.0  44  50 

df1

       ID    AA  TM  TP
Date                      
2001  a   1.0  44  50 

df2

       ID    TP  TZ  TK
Date                      
2001  a   1.0  44  50 

df3

       ID    AA  TA  TG
Date                      
2001  a   1.0  44  50 

df4

       ID    AB  TT  TQ
Date                      
2001  a   1.0  44  50 

需要列表输出

所有列名称跨多个DataFrame输出,但仅出现一次

desiredlist = ['AA', 'TA', 'TL', 'TM', 'TP', 'TZ', 'TK','TG', 'AB', 'TT', 'TQ']
python list dataframe for-loop append
2个回答
0
投票

您可以使用set.update()填充集合,然后获得唯一的列名称。

例如:

set.update()

打印:

df1 = pd.DataFrame({'A':[1], 'B':[2]})
df2 = pd.DataFrame({'A':[1], 'C':[2]})
df3 = pd.DataFrame({'D':[1], 'E':[2]})
df4 = pd.DataFrame({'D':[1], 'B':[2]})

unique = set()
for d in [df1, df2, df3, df4]:
    unique.update(d)
print(unique)

0
投票

您可以遍历列表“ a”并将尚未添加的值添加到“ desiredlist”。我认为这就是您想要的。

{'A', 'D', 'C', 'E', 'B'}
© www.soinside.com 2019 - 2024. All rights reserved.