【问题标题】:Editing values in DataFrafe column -Python & PANDAS [duplicate]编辑 DataFrafe 列中的值-Python 和 PANDAS [重复]
【发布时间】: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)

结果如你所见,有一些错误,我真的不知道为什么。

【问题讨论】:

  • 您查看过该方法的文档吗?

标签: python pandas


【解决方案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。当起始值
猜你喜欢
  • 2017-04-01
  • 2020-10-19
  • 2021-10-21
  • 2018-07-03
  • 2021-10-10
  • 1970-01-01
  • 2018-04-10
  • 2018-01-29
  • 1970-01-01
相关资源
最近更新 更多