Python 熊猫的命名转换
我知道我可以在Pandas中命名一个Python 熊猫的命名转换,python,pandas,Python,Pandas,我知道我可以在Pandas中命名一个聚合,如下所示: import pandas as pd import numpy as np df = pd.DataFrame({'col': [1,2,3], 'group' : ['a','a','b']}) df.groupby('group').agg(mymean = ('col', 'mean'), mymax = ('col', 'max'), mymin = (
聚合
,如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame({'col': [1,2,3],
'group' : ['a','a','b']})
df.groupby('group').agg(mymean = ('col', 'mean'),
mymax = ('col', 'max'),
mymin = ('col', 'min'))
Out[23]:
mymean mymax mymin
group
a 1.5 2 1
b 3.0 3 3
这非常方便,因为我可以创建多个变量并动态命名它们。我想对.transform()
(或.apply()
)执行同样的操作。
不幸的是,同样的伎俩不起作用:
df.groupby('group').transform(mymean = ('col', 'mean'),
mymax = ('col', 'max'),
mymin = ('col', 'min'))
Traceback (most recent call last):
File "<ipython-input-24-3a6cf53bd93e>", line 1, in <module>
df.groupby('group').transform(mymean = ('col', 'mean'),
TypeError: transform() missing 1 required positional argument: 'func'
您只需执行
assign
df.assign(mymean = df['col1'].mean(),mymax = df['col1'].max())
Out[344]:
col1 mymean mymax
0 1 2.0 3
1 2 2.0 3
2 3 2.0 3
天哪!!!就这么简单?
assign
能否与groupby
一起工作?让我根据Hum。。。我不能让它工作。。。你能?谢谢@ℕʘʘḆḽḘ 如果与groupby链接,我认为df.merge(df.groupby('group').agg().reset_index())
足够好了~yes。。。但我想知道,如果数据中有空组,那么我们是否会最终出错,从而在调用reset_index()时将索引弄乱
df.assign(mymean = df['col1'].mean(),mymax = df['col1'].max())
Out[344]:
col1 mymean mymax
0 1 2.0 3
1 2 2.0 3
2 3 2.0 3