Pandas:TypeError:“str”和“float”实例之间不支持“>=”

2024-03-28 17:41:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

         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   

我的代码是:

^{pr2}$

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

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

有什么办法忽略字符串数据类型吗?在


Tags: 数据字符串样本snowrain阵风precipmaxtemp
2条回答

如果对<;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填充,而系列的其余部分则保持为字符串。在

因此,请检查您导入的数字数据的类型(如果需要,将其转换为float)。。。如果数据导入中有奇怪的间隙,您可以考虑修复数据问题,或者如果列/行像已发布的数据中那样不断移动,则可以考虑使用delim_whitespace=True导入数据

相关问题 更多 >