我正在尝试为以下数据样本找到每个月的最大阵风: 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?
2 回答

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

米琪卡哇伊
TA贡献1998条经验 获得超6个赞
你的数据的间距有点奇怪,你没有发布它是如何导入的,所以我只能冒险猜测。
你确定所有的列maxgustspd
都有数据吗?当我有一个数据框系列的字符串时,我已经看到了您所描述的问题,其中有一些间隙。空白被填充为 NaN,而该系列的其余部分保持为字符串。
因此,检查您导入的数字数据的类型(并在必要时将它们转换为浮点数)...如果数据导入中有奇怪的间隙,您可能会考虑修复数据问题或导入数据,delim_whitespace=True
如果列/行像在发布的数据中一样不断变化
添加回答
举报
0/150
提交
取消