我正在尝试对熊猫数据框进行一些聚合.这是一个示例代码:
import pandas as pd
df = pd.DataFrame({"User": ["user1", "user2", "user2", "user3", "user2", "user1"],
"Amount": [10.0, 5.0, 8.0, 10.5, 7.5, 8.0]})
df.groupby(["User"]).agg({"Amount": {"Sum": "sum", "Count": "count"}})
Out[1]:
Amount
Sum Count
User
user1 18.0 2
user2 20.5 3
user3 10.5 1
Run Code Online (Sandbox Code Playgroud)
这会产生以下警告:
FutureWarning:使用带重命名的dict已弃用,将在以后的版本中返回super(DataFrameGroupBy,self).aggregate(arg,*args,**kwargs)
我怎么能避免这个?
我试图理解这个简单的SQL语句的等价物是什么:
select mykey, sum(Field1) as sum_of_field1, avg(Field1) as avg_field1, min(field2) as min_field2
from df
group by mykey
Run Code Online (Sandbox Code Playgroud)
我明白我可以将字典传递给agg()函数:
f = {'Field1':'sum',
'Field2':['max','mean'],
'Field3':['min','mean','count'],
'Field4':'count'
}
grouped = df.groupby('mykey').agg(f)
Run Code Online (Sandbox Code Playgroud)
但是,结果列名似乎是由pandas自动选择的:('Field1','sum')等等.
有没有办法为列名传递字符串,所以字段不是('Field1','sum')我可以选择的东西,比如sum_of_field1?
谢谢.我查看了这里的文档:http://pandas.pydata.org/pandas-docs/stable/groupby.html 但是找不到答案.