我具有以下数据帧字典(df):
([('Austria',
Name Value
0 3 BG EMCore Convertibles Global CHF R T 5
1 3 BG EMCore Convertibles Global R T 6
[2 rows x 2 columns]),
('Belgium',
Name Value
0 AG Life Alternative Investments 7
1 AG Life Balanced 1
2 AG Life Bonds Global 2
3 AG Life Bonds Indexed 7
[4 rows x 2 columns])])
我想将数据转换为单个数据帧,并同时将关键字字符串设置为附加列
我首先将字典转换为数据帧列表:
mylist=[i[1] for i in df.items()]
然后我可以通过以下方式将数据框合并为单个数据框:
master_frame=pd.concat(mylist, sort=True)
但是我想将字典中的键设置为附加列
如果是这样的话,期望的结果:
Name Value Country
0 3 BG EMCore Convertibles Global CHF R T 5 Austria
1 3 BG EMCore Convertibles Global R T 6 Austria
2 AG Life Alternative Investments 7 Belgium
3 AG Life Balanced 1 Belgium
4 AG Life Bonds Global 2 Belgium
5 AG Life Bonds Indexed 7 Belgium
预先感谢
答案 0 :(得分:2)
您尝试过吗:
final_df = pd.DataFrame()
for key, value in dictionary.items():
df = value
df.loc[:,'Country'] = key
final_df = pd.concat([df, final_df], 0)
final_df
答案 1 :(得分:1)
对于dict
,例如:
dfs = {'Austria': AustriaDF, 'Belgium': BelgiumDF}
您可以仅基于键添加新列,然后合并它们:
for country, df in dfs.items():
df['Country'] = country
master_frame = pd.concat(sorted(dfs.values(), key=lambda df: df['Country'][0]), ignore_index=True)
master_frame
的值:
Name Value Country
0 3 BG EMCore Convertibles Global CHF R T 5 Austria
1 3 BG EMCore Convertibles Global R T 6 Austria
2 AG Life Alternative Investments 7 Belgium
3 AG Life Balanced 1 Belgium
4 AG Life Bonds Global 2 Belgium
5 AG Life Bonds Indexed 7 Belgium