猿问

在多个 DataFrame 上检索唯一的列名并将所有列附加到列表中

任务描述


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


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


for index, dataframe in enumerate(alldf):

    desiredlist = []

    a = dataframe.columns.values.tolist()

    desiredlist.append(a)

数据框示例


  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']


holdtom
浏览 126回答 2
2回答

HUH函数

您可以遍历列表“a”并添加尚未添加到“desiredlist”的值。我想这就是你想要的。alldf = [df, df1, df2, df3, df4]desiredlist = []for index, dataframe in enumerate(alldf):    a = dataframe.columns.values.tolist()    for column_name in a:        if not column_name in desiredlist:            desiredlist.append(column_name)

拉莫斯之舞

您可以使用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', 'D', 'C', 'E', 'B'}
随时随地看视频慕课网APP

相关分类

Python
我要回答