[任务描述
我想在多个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']
您可以使用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)
您可以遍历列表“ a”并将尚未添加的值添加到“ desiredlist”。我认为这就是您想要的。
{'A', 'D', 'C', 'E', 'B'}