熊猫分组,然后申请,给出字段名称None



我有下面的代码

data = (data
.sort_values(by=['x','y'])
.groupby(["x","y"], as_index=False)
.apply(get_val)
#.reset_index(name='rows')
)

get_val字段名称None

当我添加时

.reset_index(name='z'(

给出错误

reset_index((获得了一个意外的关键字参数"name">

我有类似的数据

x   y rows
a 1500.0    A
a 1500.0    B
a 1500.0    C
b  700.0    C
b 1500.0    D
b  700.0    D
b 1500.0    E
c  700.0    E
c 1500.0    F
c  700.0    F

任何帮助感谢

这是意料之中的事,因为使用DataFrame.reset_index-没有参数name-只有在Series.reset_index中。

如果在groupby之后指定列并删除as_index=False,它应该可以工作,因为输出是Series:

def get_val(x):
return x.sum() + 1
data = pd.DataFrame({'x':[1,1,1,2,0,0], 'y':[2,2,4,7,1,1], 'col':range(6)})
print (data)
x  y  col
0  1  2    0
1  1  2    1
2  1  4    2
3  2  7    3
4  0  1    4
5  0  1    5
#groupby sorting by x, y by default, so removed
data = (data.groupby(["x","y"])['col']
.apply(get_val)
.reset_index(name='rows')
)
print (data)
x  y  rows
0  0  1    10
1  1  2     2
2  1  4     3
3  2  7     4

最新更新