python - 通过根据字典值添加新行,使用 pandas 重新格式化数据框

标签 python pandas

下面给出的是我的数据框

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/

相关文章:

python - 使用python逐字打印乌尔都语(非拉丁语言)

python - 从最后一行读取csv文件

python - 尝试从 Github 安装 Python 包

python - 在 QML 中显示 pandas 数据框

python - 如何优化我的代码,以便能够使用循环在子图中绘制直方图?

python - 如果发生错误,请运行新代码

python - 为 Tensorflow 2.0 适配 Tensorflow RNN Seq2Seq 模型代码

python - 根据条件替换列中的值

python - 如何删除指定行的 Pandas 数据框

python - 将 groupby MultiIndex header 合并为一个单行 header