pandas 相关的问题,请问如何在 df 分类 groupby 的同时实现条件赋值,修改每一类前几行和最后几行的值为空值

2022-05-17 00:03:37 +08:00
 bleutail
def fuc(x):
    x.loc[(x.head(10).index) & (x.tail(10).index),'col_name'] = np.nan
    return x
df['col_name'] = df.groupby('date').apply(fuc)['col_name']```

以上写法没报错,但也没实现修改效果。。
1596 次点击
所在节点    Python
2 条回复
robbielj
2022-05-17 10:11:02 +08:00
```
def fuc(x):
x.loc[np.r_[x.head(10).index.values,x.tail(10).index.values]] = np.nan
return x
df['col'] = df.groupby('date')["col"].apply(fuc)

```
milkpuff
2022-05-17 14:32:37 +08:00
apply 每个 group 返回一个值, m 行数据、n 个 group -> 返回 n 行
transfer 返回 shape 和原来一致 m 行数据、n 个 group -> 返回 m 行
你这个应该使用 transfer
另外,(x.head(10).index) & (x.tail(10).index)这句也不是拼接两个 index, 参考 1 楼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/853318

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX