python / dataframe-groupby列以创建列表

时间:2018-08-28 02:19:10

标签: python apache-spark-sql

我正在尝试使用数据框来转换数据:

Column 1 | Column 2 | Column 3 | Column 4
--------------------------------
A    | B   | 1 | # 
A    | B   | 2 | $ 
A    | C   | 1 | % 

进入

Column 1 | Column 2 | Column 5
--------------------------------
A    | B   | [Column 3: 1, Column 4:#, Column 3:2, Column 4:$] 
A    | C   | [Column 3: 1, Column 4:%] 

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

这很接近(您的示例输出不是有效的python,除非它只是一个字符串):

In []:
(df.groupby(['Column 1', 'Column 2'])[['Column 3', 'Column 4']]
   .apply(lambda x: x.to_dict(orient='record'))
   .reset_index(name='Column 5'))

Out[]:
  Column 1 Column 2                                                             Column 5
0        A        B  [{'Column 3': 1, 'Column4': '#'}, {'Column 3': 2, 'Column 4': '$'}]
1        A        C                                   [{'Column 3': 1, 'Column 4': '%'}]