【问题标题】:How to add a Column named Key into a dictionary of multiple dataframes如何将名为 Key 的列添加到多个数据框的字典中
【发布时间】:2021-09-09 19:58:53
【问题描述】:

给定一个包含多个数据框的字典。如何向每个数据框添加一列,其中 df 中的所有行都填充了键名'?

我试过这段代码:

for key, df in sheet_to_df_map.items():
    df['sheet_name'] = key

此代码确实在字典内的每个数据帧中添加了键列,但也创建了一个额外的数据帧。

如果不创建额外的数据框就不能做到这一点吗?

此外,我想按列数将数据框与字典分开。所有连接有 10 列的数据框,连接有 9 列的数据框,依此类推。我不知道该怎么做。

【问题讨论】:

  • 不明白为什么要创建额外的df。不应该使用您提供的代码来完成。
  • “但还会创建一个额外的数据框”是什么意思?
  • 我编辑了这个问题,以便您可以看到我的代码如何从字典中的第一个键创建数据框。

标签: python pandas dataframe dictionary


【解决方案1】:

我可以用 DataFrames 中的 assign() 方法,然后替换字典中的空洞值,但实际上我不知道这是不是你想要的......

 for key, df in myDictDf.items():    
   myDictDf[key] = df.assign(sheet_name=[key for w in range(len(df.index))])

要对字典进行排序,我认为您可以将 OrderedDict 与 DataFrame 的 columns 属性一起使用。 通过使用 len(df.columns) 可以获得每帧的列数。

我认为这些链接可能对您有用:

https://note.nkmk.me/en/python-pandas-len-shape-size/

https://www.geeksforgeeks.org/python-sort-python-dictionaries-by-key-or-value/

我也发现了一个相关的问题: Adding new column to existing DataFrame in Python pandas

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2018-05-08
    • 2019-01-29
    相关资源
    最近更新 更多