问题
我想用fillna(method='ffill')
替换数据框中的NaN
值(* 用以前的非空值填充数据框或系列中缺少的值 *),但是下面的代码示例导致错误。
df['a'] = df['a'].fillna(method='ffill')
File "pandas/_libs/algos.pyx", line 604, in pandas._libs.algos.__pyx_fused_cpdef
TypeError: No matching signature found
调试
我最初认为,df中的数据是错误的,因为No matching signature found
是信号,没有NaN
值,所以我打印了所有值和它们出现的计数,看起来应该有一些NaN
值。
print(df['a'].value_counts(dropna=False))
# Output
NaN 1417
1733.0 1
1150.0 1
1168.0 1
...
1671.0 1
1706.0 1
1132.0 1
我还尝试使用以下代码确定是否存在任何NaN
值
print(f"isnull?: {df['a'].isnull().values.any()}")
# Output
isnull?: True
可能有什么问题
1条答案
按热度按时间0md85ypi1#
解决方案
我仍然不知道为什么,但我发现在我的代码中其他
fillna
方法的出现正在处理float32
类型的数据。这个数据集的类型是float16
。所以我尝试将类型更改为float32
,它解决了这个问题!