是否可以指定 groupby()
调用在 apply()
lambda 函数中使用组名?
类似于如果我遍历组,我可以通过以下元组分解获得组键:
for group_name, subdf in temp_dataframe.groupby(level=0, axis=0):
print group_name
...有没有办法在应用函数中也获取组名,例如:
temp_dataframe.groupby(level=0,axis=0).apply(lambda group_name, subdf: foo(group_name, subdf)
如何获取组名作为 apply lambda 函数的参数?
最佳答案
我认为你应该能够使用name
属性:
temp_dataframe.groupby(level=0,axis=0).apply(lambda x: foo(x.name, x))
应该可以,例如:
In [132]:
df = pd.DataFrame({'a':list('aabccc'), 'b':np.arange(6)})
df
Out[132]:
a b
0 a 0
1 a 1
2 b 2
3 c 3
4 c 4
5 c 5
In [134]:
df.groupby('a').apply(lambda x: print('name:', x.name, '\nsubdf:',x))
name: a
subdf: a b
0 a 0
1 a 1
name: b
subdf: a b
2 b 2
name: c
subdf: a b
3 c 3
4 c 4
5 c 5
Out[134]:
Empty DataFrame
Columns: []
Index: []
关于python - 在 apply 函数 pandas python 中包含组名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32460593/