panda从其中一列向Dict中的数据帧添加列

2024-10-02 00:35:26 发布

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

我有下面的pandas.DataFrame

enter image description here

Dataframe中的一列pontos,为每一行保存一个dict。在

我要做的是为这个dict中的每个键向DataFrame添加一列,因此在这个示例中,新列将是:rodadames,等等,对于每一行,这些列将使用dict中的相应值填充

到目前为止,我已经尝试了以下方法之一:

df_times["rodada"] = [df_times["pontos"].get('rodada') for d in df_times["pontos"]]

但是,结果我得到了一个新的列rodada,其中填充了None值:

enter image description here

我做错什么了吗?在


Tags: 方法innone示例dataframepandasdffor
3条回答

您可以创建一个新的数据帧并将其^{}转换为当前的数据帧,如下所示:

代码:

df2 = pd.concat([df, pd.DataFrame(list(df.pontos))], axis=1)

测试代码:

^{pr2}$

结果:

   X                           D
0  A  {'col2': '2', 'col1': '1'}
1  B  {'col2': '4', 'col1': '3'}

   X                           D col1 col2
0  A  {'col2': '2', 'col1': '1'}    1    2
1  B  {'col2': '4', 'col1': '3'}    3    4

您还可以使用join和pandas apply函数:

df=df.join(df['pontos'].apply(pd.Series))

你只需要稍微改变一下你的理解来提取数据。在

它应该是:

df_times["rodada"] = [d.get('rodada') for d in df_times["pontos"]]

您希望字典键“rodada”的值作为新列的基础。所以您在循环中迭代这些字典条目—换句话说,就是d,然后通过键提取值来生成新的列。在

相关问题 更多 >

    热门问题