【发布时间】:2020-10-29 23:25:36
【问题描述】:
您好,我有一个数据框:
import pandas as pd
df1 = {'name': ["x","x","x","x","x","x","x","y","y","y","y","y","y","y"],
'a': [3,4,5,11,14,15,16,2,3,4,10,13,14,15],
'b': [9,8,7,12,23,22,21,8,7,6,11,22,21,20],
'val': [2,1,3,4,5,6,3,21,11,31,41,51,61,31]
}
df1 = pd.DataFrame (df1, columns = ['name','a','b','val'])
如果“a”列中的数字彼此相邻,我希望对“val”列中的数字求和。例如。在“a”中,您有 3,4,5(彼此相邻),因此将它们在“val”列中的相关数字相加(即 2+1+3),然后创建一个新列,其中存在附加值.对我来说更难的是按“名称”对它们进行分组。
我不知道我解释得有多好,但这是我希望最终得到的数据框
df2 = {'name': ["x","x","x","x","x","x","x","y","y","y","y","y","y","y"],
'a': [3,4,5,11,14,15,16,2,3,4,10,13,14,15],
'b': [9,8,7,12,23,22,21,8,7,6,11,22,21,20],
'val': [2,1,3,4,5,6,3,21,11,31,41,51,61,31],
'sum_val': [6,6,6,4,14,14,14,63,63,63,41,143,143,143]
}
df2 = pd.DataFrame (df2, columns = ['name','a','b','val','sum_val'])
【问题讨论】:
标签: python python-3.x pandas dataframe dataset