import pandas as pd
import numpy as np
# 第一个改动就是对agg的改动,现在可以很简单的加一个新列,比如:
df = pd.DataFrame({'kind': ['cat', 'dog', 'cat', 'dog'],'height': [9.1, 6.0, 9.5, 34.0], 'weight': [7.9, 7.5, 9.9, 198.0]})
df
kind height weight
0 cat 9.1 7.9
1 dog 6.0 7.5
2 cat 9.5 9.9
3 dog 34.0 198.0
df.groupby('kind').agg(min_height = pd.NamedAgg(column='height', aggfunc='min'))
min_height
kind
cat 9.1
dog 6.0
# 上面的内容也可以简写(用元组来简写)
df.groupby('kind').agg(min_height=('height', np.mean))
# 还可以这样,这种自由度很大,不要用以前那种字典的类型了
df.groupby('kind')['height'].agg(min_height='min')
# 把用逗号分隔的内容拆分开explode()
df = pd.DataFrame([{'var1': 'a,b,c', 'var2': 1},{'var1': 'd,e,f', 'var2': 2}])
df.assign(var1=df.var1.str.split(',')).explode('var1')
var1 var2
0 a 1
0 b 1
0 c 1
1 d 2
1 e 2
1 f 2