如何将包含列表的DataFrame合并为单行?
合并DataFrame多行数据为嵌套列表形式的单行
输入DataFrame
| LOT | ID | VALUES |
|---|---|---|
| ABC | [123, 456] | [0.01, 0.02] |
| DEF | [654, 321] | [0.03, 0.04] |
期望输出DataFrame
| LOT | ID | VALUES |
|---|---|---|
| [ABC, DEF] | [[123,456],[654,321]] | [[0.01,0.02],[0.03,0.04]] |
解决方案
直接用Pandas的agg(list)方法对整个DataFrame做聚合,就能把每列的所有元素(包括原有的列表)收集成嵌套列表,最终得到单行结果:
import pandas as pd # 构造输入DataFrame df = pd.DataFrame({ 'LOT': ['ABC', 'DEF'], 'ID': [[123, 456], [654, 321]], 'VALUES': [[0.01, 0.02], [0.03, 0.04]] }) # 聚合为单行嵌套列表格式 result_df = df.agg(list).to_frame().T print(result_df)
agg(list)会遍历每一列,将该列的所有元素(无论是单个字符串还是列表类型)都封装进新列表;to_frame().T则是把聚合后的Series转换为DataFrame的单行结构,最终输出与期望格式完全匹配。
内容的提问来源于stack exchange,提问作者Herbert
相关产品推荐
相关产品推荐

