【问题标题】:Pandas :TypeError: '>=' not supported between instances of 'str' and 'float' [duplicate]Pandas:TypeError:'str'和'float'的实例之间不支持'> =' [重复]
【发布时间】:2018-11-11 05:56:48
【问题描述】:

我正在尝试为以下数据样本找出每个月的最大阵风:

         maxtemp    mintemp meantemp    heatdays    cooldays    rain    snow precip groundsnow  maxgustdir  maxgustspd
  time                                          
 2018-01-01 -1.3    -8.1    -4.7    22.7    0.0 0.0 1.0 0.2 17.0    26.0    54
 2018-01-02 -0.9    -7.4    -4.2    22.2    0.0 0.0 0.0 0.0 17.0    26.0    41
 2018-01-03 -3.0    -7.9    -5.5    23.5    0.0 0.0 0.4 0.2 17.0    27.0    70
 2018-01-04 0.0 -11.0   -5.5    23.5    0.0 2.4 7.2 8.4 11.0    12.0    96
 2018-01-05 10.0    -0.3    4.9 13.1    0.0 11.0    0.0 11.0    10.0    14.0    70   

这是我的代码:

w['maxgustspd'].resample('M').max()

如您所见,我已将数据重新采样为每月一次,并试图获得每个月的最大值。问题是浮点数和字符串(即

TypeError: '>=' not supported between instances of 'str' and 'float'

任何想法如何忽略字符串 dtypes?

【问题讨论】:

  • 如何忽略它们?只需给nan
  • 您的所有数字实际上都存储为浮点数还是其中一些存储为字符串?如果是后者,您可能希望实际将数字转换为浮点数。
  • 除 (

标签: python pandas


【解决方案1】:

如果对

w.maxgustspd = w.maxgustspd.map(lambda x: x if type(x) != str else np.NaN) w['maxgustspd'].resample('M').max()

【讨论】:

    【解决方案2】:

    你的数据间距有点奇怪,而且你没有发布它是如何导入的,所以我只能冒险猜测。

    您确定maxgustspd 中的所有列都有数据吗?当我有一个数据框系列的字符串时,我已经看到了您所描述的问题,其中有一些空白。空白被填充为 NaN,而该系列的其余部分保持为字符串。

    因此,请检查您已导入的数字数据的类型(必要时将其转换为浮点数)...如果数据导入中有奇怪的间隙,您可能会考虑修复数据问题或使用 @987654322 导入数据@如果列/行像发布的数据一样不断变化

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-22
      • 2018-03-06
      • 1970-01-01
      • 2019-11-12
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多