我有下面的代码
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