首页 > 解决方案 > 合并指定字段上的元组

问题描述

我有如下格式的元组数组(date, user_id, amount)

[
  ('2020-10-01', 1, 1000), 
  ('2020-10-01', 2, 2000), 
  ('2020-10-01', 3, 3000), 
  ('2020-10-01', 1, 4000),
  ('2020-10-01', 3, 5000)
]

我想要做的是像这样组合相同 user_id 的金额:

[
  ('2020-10-01', 1, 5000), 
  ('2020-10-01', 2, 2000), 
  ('2020-10-01', 3, 8000)
]

我怎么能在python中做到这一点?谢谢!

标签: pythontuples

解决方案


干得好:

import pandas as pd 

data = [
  ('2020-10-01', 1, 1000), 
  ('2020-10-01', 2, 2000), 
  ('2020-10-01', 3, 3000), 
  ('2020-10-01', 1, 4000),
  ('2020-10-01', 3, 5000)
]
df = pd.DataFrame(data, columns=['date','id','value'])
result = df.groupby(['date','id']).sum().reset_index()
result2 = result.to_dict(orient='records')
[(r['date'], r['id'], r['value']) for r in result2] 

推荐阅读