编辑 DataFrafe 列中的值-Python 和 PANDAS [重复]
Posted
技术标签:
【中文标题】编辑 DataFrafe 列中的值-Python 和 PANDAS [重复]【英文标题】:Editing values in DataFrafe column -Python & PANDAS [duplicate] 【发布时间】:2020-06-27 17:21:32 【问题描述】:我想将 ODOMETER_FW 列中所有
当我使用熊猫时:
stupid_values = fuel_GB['ODOMETER_FW'].replace(fuel_GB['ODOMETER_FW']<100,0)
fuel_GB['ODOMETER_FW'] = stupid_values
fuel_GB.head(13)
结果如你所见,有一些错误,我真的不知道为什么。
【问题讨论】:
您查看过该方法的文档吗? 【参考方案1】:使用lambda
函数将小于100的值转换为0:
df['ODOMETER_FW'] = df['ODOMETER_FW'].apply(lambda x: 0 if x <100 else x)
print(df)
ODOMETER_FW
0 11833
1 0
2 9080
3 8878
4 0
5 14578
6 14351
7 0
8 13456
9 0
10 0
11 0
12 0
【讨论】:
为什么要使用apply()
和 lambda 而不是简单的 fuel_GB[fuel_GB['ODOMETER_FW'] < 100, 'ODOMETER_FW'] = 0
?【参考方案2】:
只需询问相关行的修改:
fuel_GB.loc[fuel_GB['ODOMETER_FW'] < 100, 'ODOMETER_FW'] = 0
【讨论】:
嗨,不幸的是它不起作用:TypeError:'Series'对象是可变的,因此它们不能被散列 @Ventre90:真丢人,我忘了.loc
。固定...
@Serge Ballesta,它也很好用。感谢您的奉献!【参考方案3】:
使用这个熊猫代码:
fuel_GB[fuel_GB['ODOMETER_FW'] < 100] = 0
【讨论】:
您好,它正在将提到的行中的所有值更改为 0。当起始值以上是关于编辑 DataFrafe 列中的值-Python 和 PANDAS [重复]的主要内容,如果未能解决你的问题,请参考以下文章