我有以下数据框:
df = pd.DataFrame({'id':['0001', '0001'],
'vat_countries': [{'vat': 21, 'country': 'ES'},
{'vat': 23, 'country': 'GR'}]
})
id vat_countries
0001 {'vat': 21, 'country': 'ES'}
0001 {'vat': 23, 'country': 'GR'}
我想要得到的是:
id vat country
0001 21 'ES'
0001 23 'GR'
阅读其他问题我得到以下代码:
df = df.drop('vat_countries', 1).assign(**pd.DataFrame(list_df['vat_countries'].values.tolist()))
然而,这给了我:
id vat country
0001 21 'ES'
0001 21 'ES'
这是错误的。
我已经能够使用以下方法获得我想要的结果:
c = pd.concat([pd.DataFrame(df[column].values.tolist()),
df.drop(column, 1).reset_index()],
axis=1, ignore_index=True)
但这需要手动输入列名称。否则,列名称为 0、1、2、3...
有什么方法可以在保留列名称的同时获得所需的输出?谢谢
守着星空守着你
天涯尽头无女友
蛊毒传说
相关分类