gpt4 book ai didi

python - Pandas 中的命名变换

转载 作者:行者123 更新时间:2023-12-03 23:01:57 26 4
gpt4 key购买 nike

我知道我可以命名一个 aggregation在 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 = ('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'
使用转换创建多个变量的最简洁方法是什么?输出应该是:
Out[25]: 
col group mymean mymax
0 1 a 1 2
1 2 a 1 2
2 3 b 3 3

最佳答案

你可以做 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

关于python - Pandas 中的命名变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65100541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com