Python 将数据帧分组按总和/计数转换为新数据帧
我的数据帧是Python 将数据帧分组按总和/计数转换为新数据帧,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我的数据帧是 State|City|Year|Budget|Income S1|C1|2000|1000|1 S1|C2|2000|1200|2 S2|C3|2000|5500|3 我需要获得一个包含列的新数据帧: State, Year, Count, Sum_Budget, Sum_Income: 就是 State|Year|Count|Sum_Budget|Sum_Income S1|2000|2|2200|3 S2|2000|1|5500|3 在C#中,代码是: dataf
State|City|Year|Budget|Income
S1|C1|2000|1000|1
S1|C2|2000|1200|2
S2|C3|2000|5500|3
我需要获得一个包含列的新数据帧:
State, Year, Count, Sum_Budget, Sum_Income:
就是
State|Year|Count|Sum_Budget|Sum_Income
S1|2000|2|2200|3
S2|2000|1|5500|3
在C#中,代码是:
dataframe
.GroupBy(x => new { x.State, x.City})
.Select(x => new {
x.Key.State,
x.Key.City,
Count = x.Count(),
Sum_Budget = x.Sum(y => y.Budget),
Sum_Income= x.Sum(y => y.Income)
}
}).ToArray();
如何处理熊猫?使用:
如果我在年列中有不同的值怎么办?因此,如果您需要打开它,我将立即执行AGG(dict)将贬值,但我找不到任何替换函数:-(
d = {'Income':'Sum_Income','Budget':'Sum_Budget','City':'Count'}
agg_d = {'Budget':'sum', 'Income':'sum', 'City':'size'}
df = df.groupby(['State', 'Year'], as_index=False).agg(agg_d).rename(columns=d)
print (df)
State Year Sum_Income Sum_Budget Count
0 S1 2000 3 2200 2
1 S2 2000 3 5500 1