下面给出的是我的数据框
df = pd.DataFrame({'Col1':['1','2'],'Col2':[{'a':['a1','a2']},{' b':['b1']}]})
Col1 Col2
0 1 {u'a': [u'a1', u'a2']}
1 2 {u'b': [u'b1']}
我需要按如下方式重新格式化此数据框
Col1 NCol2 NCol3
0 1 a a1
1 1 a a2
2 2 b b1
基本上,对于字典中的每个键值对,我在 Ncol2 和 Ncol3 中添加一行包含键和值的行。
提前感谢您的帮助。
最佳答案
您可以使用以下解决方案:
df1 = df['Col2'].apply(pd.Series).apply(lambda x: x.explode())\
.stack().reset_index(level=1)
df1.columns = ['Col2', 'Col3']
df.drop('Col2', axis=1).merge(df1, left_index=True, right_index=True)\
.reset_index(drop=True)
输出:
Col1 Col2 Col3
0 1 a a1
1 1 a a2
2 2 b b1
关于python - 通过根据字典值添加新行,使用 pandas 重新格式化数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58501233/