我有一个包含两列的数据框。第一列包含years
,第二列包含value
。我想将某一年分组,然后将其更改为该组的名称,然后添加所有相应的值。
例如,下面是小型数据集
years value
1950 3
1951 1
1952 2
1961 4
1964 10
1970 34
输出应类似于
years value
1950's 6
1960's 14
1970's 34
我正在使用pandas
在Python中进行尝试,并尝试了很多方法,将其转换为dict或for循环,但是每次我都无法达到预期的效果。有人可以帮忙吗?
答案 0 :(得分:3)
使用整数除法,将多个10
强制转换为字符串并添加s
,并使用此系列来汇总sum
:
y = ((df['years'] // 10) * 10).astype(str) + 's'
df = df.groupby(y)['value'].sum().reset_index()
print (df)
years value
0 1950s 6
1 1960s 14
2 1970s 34
详细信息:
print (y)
0 1950s
1 1950s
2 1950s
3 1960s
4 1960s
5 1970s
Name: years, dtype: object
答案 1 :(得分:1)