编辑 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'] &lt; 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用python替换电源查询列中的值? [关闭]

Python Pandas根据多个其他列中的条件替换一列中的值[重复]

python 过滤列中的值

将不同列中的值合并为python列表中的一个

python 获取不以某些字母开头的列中的值

在python中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?