python-3.x - 对于 Pandas 中的每个组,将给定列的第一行值替换为 NaN
问题描述
如何替换每个组的第一行值pct
as和?谢谢你。NaN
city
district
city district date pct
0 a b 2019/8/1 0.15
1 a b 2019/9/1 0.12
2 a b 2019/10/1 0.25
3 c d 2019/7/1 0.03
4 c d 2019/8/1 -0.36
5 c d 2019/9/1 0.57
我只能通过 获取pct
数据帧的第一行值df['pct'].iloc[0]
。
我想要的输出将是这样的:
city district date pct
0 a b 2019/8/1 NaN
1 a b 2019/9/1 0.12
2 a b 2019/10/1 0.25
3 c d 2019/7/1 NaN
4 c d 2019/8/1 -0.36
5 c d 2019/9/1 0.57
解决方案
使用Series.where
+DataFrame.duplicated
df['pct']=df['pct'].where(df.duplicated(subset = ['city','district']))
print(df)
city district date pct
0 a b 2019/8/1 NaN
1 a b 2019/9/1 0.12
2 a b 2019/10/1 0.25
3 c d 2019/7/1 NaN
4 c d 2019/8/1 -0.36
5 c d 2019/9/1 0.57
细节:
df.duplicated(subset = ['city','district'])
0 False
1 True
2 True
3 False
4 True
5 True
dtype: bool
推荐阅读
- javascript - Angular 6反应形式输入值到大写
- php - 在自定义表中保存 WooCommerce 订单详细信息
- python - 如何通过唯一的rowID组合两个数据框,一个比另一个具有更少的值
- python - 如何在 scikit learn predict 中添加 none 选项
- java - Eclipse Formatter 在代码块之间添加空行
- unity3d - 如何在 Unity3D 中开发左滑菜单
- algorithm - 对 Kruskals 算法使用数组而不是不相交集来加快合并和查找时间
- wildfly-12 - Wildfly-14:java.lang.ClassCastException:org.apache.xml.dtm.ref.DTMManagerDefault 无法转换为 org.apache.xml.dtm.DTMManager
- python-3.x - 使用 pip 安装 pocketsphinx 包时出错
- wso2 - 为 WSO2AM 的 MB 配置 TLS