【问题标题】:I can not replace values on column based on conditions我无法根据条件替换列中的值
【发布时间】:2019-08-21 14:23:03
【问题描述】:

我正在尝试用基于条件的值替换一列(基本上我正在尝试在此列中创建索引类以进行多项逻辑回归)

我尝试使用 DataFrame.loc,但总是遇到同样的错误

谁能帮我解决??

data.loc[(data['Freq_Rech'] < 3), 'Freq_Rech'] = 1
data.loc[(data['Freq_Rech'] >= 3) & (data['Freq_Rech'] < 6), 'Freq_Rech'] = 3
data.loc[data['Freq_Rech'] >= 6 & data['Freq_Rech'] < 10, 'Freq_Rech'] = 6
data.loc[data['Freq_Rech'] >= 10 & data['Freq_Rech'] < 20, 'Freq_Rech'] = 10
data.loc[data['Freq_Rech'] >= 20, 'Freq_Rech'] = 20

错误是: 无法将 dtyped [float64] 数组与 [bool] 类型的标量进行比较

【问题讨论】:

  • 在使用&amp;多条件时,每个条件都必须有()括号
  • 问题已解决,非常感谢

标签: python pandas


【解决方案1】:

你快到了。只需确保在布尔条件周围有正确的语法:

data.loc[(data['Freq_Rech'] < 3), 'Freq_Rech'] = 1
data.loc[(data['Freq_Rech'] >= 3) & (data['Freq_Rech'] < 6), 'Freq_Rech'] = 3
data.loc[(data['Freq_Rech'] >= 6) & (data['Freq_Rech'] < 10), 'Freq_Rech'] = 6
data.loc[(data['Freq_Rech'] >= 10) & (data['Freq_Rech'] < 20), 'Freq_Rech'] = 10
data.loc[(data['Freq_Rech'] >= 20), 'Freq_Rech'] = 20

【讨论】:

  • 正是括号!!。谢谢
  • @TrikiSadok 没问题,很高兴为您提供帮助。随意“接受”答案并投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 2021-08-16
  • 2022-01-19
  • 2021-10-01
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
相关资源
最近更新 更多