我有一个包含两列的数据框。第一列包含 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 循环,但每次我都无法达到预期效果。有人可以帮忙吗?

最佳答案

使用整数除法,多个 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

关于python - Pandas 中的分组和求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55508210/

10-16 02:35