如何将Pandas数据帧转换为元组列表<字符串,列表列表>

2024-10-05 14:27:45 发布

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

我有一个数据帧,它有以下结构

title      field1    field2   field3    field4   field5
title1    value11    value12  value13    value14   value15
title1    value21    value22  value23    value24   value25
title1    value31    value32  value33    value34   value35
title2    value1_1    value1_2  value1_3    value1_4   value1_5
title2    value2_1    value2_2  value2_3    value2_4   value2_5
title2    value3_1    value3_2  value3_3    value3_4   value3_5

我想将上述数据帧转换为元组列表<;字符串,列表列表>

比如说,

title1, [
    (value11, value12, value13, value14, value15),
    (value21, value22, value23, value24, value25),
    (value31, value32, value33, value34, value35)
]
title2, [
    (value1_1, value1_2, value1_3, value1_4, value1_5),
    (value2_1, value2_2, value2_3, value2_4, value2_5),
    (value3_1, value3_2, value3_3, value3_4, value3_5)
]

Tags: 数据列表value1value2value3title2title1value11
1条回答
网友
1楼 · 发布于 2024-10-05 14:27:45

您可以在^{}中的lambda函数中使用tuple(),如下所示:

假设字段列从第二列开始。如果没有,您可以在下面的df.columns[1:]中修改列索引范围,或显式使用下面的列名称列表:

(df.groupby('title')[df.columns[1:]]
   .apply(lambda x: [tuple(y) for y in x.to_numpy()])
   .to_dict())

结果:

{'title1': [('value11', 'value12', 'value13', 'value14', 'value15'),
  ('value21', 'value22', 'value23', 'value24', 'value25'),
  ('value31', 'value32', 'value33', 'value34', 'value35')],
 'title2': [('value1_1', 'value1_2', 'value1_3', 'value1_4', 'value1_5'),
  ('value2_1', 'value2_2', 'value2_3', 'value2_4', 'value2_5'),
  ('value3_1', 'value3_2', 'value3_3', 'value3_4', 'value3_5')]}

相关问题 更多 >