我是python的新手,所以希望你能帮忙解决这个问题。我有一个元组列表。我想根据列表的第一个元素对这些列表进行分组,这可能会重复。另外,我想将重复元素列表的第2和第3个元素相加。
示例输入:
[("henry", 10, 20), ("alex", 25, 40), ("henry", 13, 21)]
示例输出:
[("henry", 23, 41), ("alex", 25, 40)]
我在python中尝试了groupby方法,但它仅适用于排序列表。
答案 0 :(得分:4)
此处的IIUC是使用pandas
的解决方案:
lst = [['henry', 10, 20], ['henry', 23, 42], ['alex', 25, 40]]
import pandas as pd
#Create a dataframe using the list
df = pd.DataFrame(lst)
#Name the columns
df.columns = ['name', 'val1', 'val2']
#Groupby name and sum it.
df.groupby('name').sum()
#Will produce this result
val1 val2
name
alex 25 40
henry 33 62
#To access the rows and columns following is the example
dfg = df.groupby('name').sum()
#Row, Column
dfg.ix[0,0]
#Will get 25 & likewise can get any other values
25