Pandas :TypeError: '>=' 在 'str' 和 'float'

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


         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()

如您所见,我已将数据重新采样为每月,并试图获得每个月的最大值。问题是混合了浮点和字符串(即 <31)值,所以我得到了错误:


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

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


Smart猫小萌
浏览 200回答 2
2回答

RISEBY

如果对 <31 值感兴趣,您需要进行一些清理以删除 < 并将它们转换为浮点数。如果 str 值不感兴趣,那么您可以将它们转换为 NaN 并且 .max 将忽略它们。w.maxgustspd = w.maxgustspd.map(lambda x: x if type(x) != str else np.NaN) w['maxgustspd'].resample('M').max()

米琪卡哇伊

你的数据的间距有点奇怪,你没有发布它是如何导入的,所以我只能冒险猜测。你确定所有的列maxgustspd都有数据吗?当我有一个数据框系列的字符串时,我已经看到了您所描述的问题,其中有一些间隙。空白被填充为 NaN,而该系列的其余部分保持为字符串。因此,检查您导入的数字数据的类型(并在必要时将它们转换为浮点数)...如果数据导入中有奇怪的间隙,您可能会考虑修复数据问题或导入数据,delim_whitespace=True如果列/行像在发布的数据中一样不断变化
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python