通过基于字典值添加新行,使用pandas重新格式化数据帧

2024-09-29 21:34:35 发布

您现在位置:Python中文网/ 问答频道 /正文

下面给出的是我的数据帧

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中的key和value

提前谢谢你的帮助


Tags: 数据a2dataframedf字典a1b1col2
1条回答
网友
1楼 · 发布于 2024-09-29 21:34:35

您可以使用以下解决方案:

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

相关问题 更多 >

    热门问题