为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

holdtom 2022-07-12 10:10:00
任务描述我想跨多个 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  TLDate                      2001  a   1.0  44  50 df1       ID    AA  TM  TPDate                      2001  a   1.0  44  50 df2       ID    TP  TZ  TKDate                      2001  a   1.0  44  50 df3       ID    AA  TA  TGDate                      2001  a   1.0  44  50 df4       ID    AB  TT  TQDate                      2001  a   1.0  44  50 列出所需的输出所有列名跨多个 DataFrame 输出,但只出现一次desiredlist = ['AA', 'TA', 'TL', 'TM', 'TP', 'TZ', 'TK','TG', 'AB', 'TT', 'TQ']
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

您可以遍历列表“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)


查看完整回答
反对 回复 2022-07-12
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您可以使用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'}


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信