【问题标题】:Calculations with pandas Dataframe raising "TypeError: unsupported operand type(s) for -: 'float' and 'str'"使用 pandas Dataframe 引发“TypeError: unsupported operand type(s) for -: 'float' and 'str'”的计算
【发布时间】:2021-02-10 23:41:28
【问题描述】:

我正在尝试使用平均和最高温度填充数据框中缺失的最高温度。我尝试了以下方法:

df.loc[df['Min Temperature']==np.NaN & df['Max Temperature']!=np.NaN & df['Average Temperature']!=np.NaN, df['Min Temperature']]=2*df['Average Temperature']-df['Max Temperature']

如果df['Min Temperature']==np.NaN AND MaxAverage 温度可用,则将值设置为:

2*df['Average Temperature']-(df['Max Temperature']

我得到以下错误:

TypeError: 不支持的操作数类型 -: 'float' 和 'str'

我尝试添加 float():

df.loc[df['Min Temperature']==np.NaN & df['Max Temperature']!=np.NaN & df['Average Temperature']!=np.NaN, df['Min Temperature']]=2*float(df['Average Temperature'])-float(df['Max Temperature'])

我收到以下错误:

无法将系列转换为

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

类型转换可以使用.astype():

2*(df['Average Temperature'].astype(float))-df['Max Temperature'].astype(float)

【讨论】:

  • ValueError: could not convert string to float: ''
猜你喜欢
  • 2020-04-04
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 2018-11-30
  • 2017-07-17
  • 2023-04-02
  • 2021-09-12
  • 2021-03-27
相关资源
最近更新 更多