我需要使用另一列上的分组依据来求和一列的值,并用这些值覆盖数据框
我已经尝试过-
df.groupby('S/T name')['Age group (Years)Total Persons'].sum()
要在-上实现求和的数据框
S/T code S/T name city name population
1 NSW Greater sydney 1000
1 NSW rest of nsw 100
1 NSW rest of nsw 2000
2 Victoria Geelong 1200
2 Victoria Melbourne 1300
2 Victoria Melbourne 1000
必需的输出-
S/T code S/T name population
1 NSW 3100
2 Victoria 3500
答案 0 :(得分:0)
尝试以下代码:
解决方案1
grouped_df = df.groupby('S/T name')['population'].sum()
print(grouped_df)
上面的代码将按列S/T name
将结果分组,并给出sum
列的population
。
解决方案2
grouped_df1 = df.groupby('S/T name').agg({'S/Tcode':'unique','population': 'sum'})
grouped_df1
答案 1 :(得分:0)
您似乎在示例中的错误列上进行了总结,切换为人口将为您提供大部分帮助:
df.groupby('S/T name')['population'].sum()
由于您想保留S / T代码列,尽管可以使用agg。在“人口”列中调用sum,在“ S / T代码”列中调用均值:
df.groupby('S/T name').agg({'population': 'sum', 'S/T code': 'mean'})
输出:
S/T name S/T code population
NSW 1 3100
Victoria 2 3500