Python 数据帧字典选择数据帧的名称

Python 数据帧字典选择数据帧的名称,python,python-3.x,pandas,dictionary,dataframe,Python,Python 3.x,Pandas,Dictionary,Dataframe,我正在使用Python 我有一本数据帧字典。每个数据帧在字典中都有一个名称,我可以正确引用它,没有问题 我尝试使用该名称,并将其作为一列添加到每一行中。我很难做到这一点。您只需将名称字符串分配给每个数据帧的新列: import pandas as pd frames = { 'foo': pd.DataFrame({'a': [1, 2], 'b': [3, 4]}), 'bar': pd.DataFrame({'a': [9, 8], 'b': [7, 6]}) } for nam

我正在使用Python

我有一本数据帧字典。每个数据帧在字典中都有一个名称,我可以正确引用它,没有问题


我尝试使用该名称,并将其作为一列添加到每一行中。我很难做到这一点。

您只需将名称字符串分配给每个数据帧的新列:

import pandas as pd

frames = {
  'foo': pd.DataFrame({'a': [1, 2], 'b': [3, 4]}),
  'bar': pd.DataFrame({'a': [9, 8], 'b': [7, 6]})
}

for name, df in frames.items():
  df['name'] = name
  print(df, '\n')
给出:

   a  b name
0  1  3  foo
1  2  4  foo

   a  b name
0  9  7  bar
1  8  6  bar

您可以反复浏览字典并执行以下操作:

for key in d.keys():  # d is the dictionary of dataframes
    d[key]['new_col'] = key  # df_name is the name string you want to add in dataframe.

您可以使用字典理解和:


你能分享你的数据吗?我想添加的名字是key,所以用key替换df_name?
frames = {k: v.assign(name=k) for k, v in frames.items()}