python - 如何按列对 pandas 中的数据框进行分组并获取 Json 数组中的所有其他列数据?

标签 python pandas

我有一个 pandas 数据框:

df = pd.DataFrame({
        "Column1": ['A', 'A', 'B', 'B', 'C', 'C', 'C'],
        "Column2": ['x1', 'x2', 'z1', 'z2', 'm1', 'm2', 'm3'],
        "Column3": ['y1', 'y2', 'd1', 'd2', 'n1', 'n2', 'n3']
})

如何按第一列分组以获得以下输出

第 1 列 |新列 -------- | --------|-------- 一个 | [{“列2”:“x1”,“列3”:“y1”},{“列2”:“x2”,“列3”:“y2”}] 乙| [{“列2”:“z1”,“列3”:“d1”},{“列2”:“z2”,“列3”:“d2”}] C | [{“列2”:“m1”,“列3”:“n1”},{“列2”:“m2”,“列3”: "m2"},{"Column2": "m3", "Column3": "n3"}]

我需要这样做才能将另一个数据框与 Column1 连接。

谢谢

最佳答案

您可以使用以下代码:

df_out =  df.groupby('Column1')\
            .apply(lambda x: x.drop('Column1',axis=1).to_dict(orient='record'))\
            .reset_index(name='new_column')

输出:

  Column1                                         new_column
0       A  [{'Column3': 'y1', 'Column2': 'x1'}, {'Column3...
1       B  [{'Column3': 'd1', 'Column2': 'z1'}, {'Column3...
2       C  [{'Column3': 'n1', 'Column2': 'm1'}, {'Column3...

使用 to_dict 显示完整数据框

df_out.to_dict()

输出:

 'A': [{'Column2': 'x1', 'Column3': 'y1'}, {'Column2': 'x2', 'Column3': 'y2'}],
 'B': [{'Column2': 'z1', 'Column3': 'd1'}, {'Column2': 'z2', 'Column3': 'd2'}],
 'C': [{'Column2': 'm1', 'Column3': 'n1'},
  {'Column2': 'm2', 'Column3': 'n2'},
  {'Column2': 'm3', 'Column3': 'n3'}]}

关于python - 如何按列对 pandas 中的数据框进行分组并获取 Json 数组中的所有其他列数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45776437/

相关文章:

python - RPi - 启动时运行的 Python Curses 程序没有键盘焦点

Python Paramiko,权限错误: [Errno 13] Permission denied when get files from remote server

python - 如何检查pandas数据框中的 bool 条件

python - 对数据库执行写操作时MDB_MAP_FULL错误

python - 我的算法/代码有什么问题?

python - 是否有可以去除异常值的功能?

python - 将 pandas 列中的关键字与另一个元素列表匹配

python - 查找 DataFrame 中相邻元素(行和列)的平均值

python - 根据两列组合的匹配将列从一个数据帧复制到另一数据帧

python - 保留装饰函数的签名