pandas.DataFrame.interpolate()
方法在使用 method='time'
时抛出此错误争论:
Error: Invalid fill method. Expecting pad (ffill) or backfill (bfill). Got time
这仅在
pandas
之后才开始发生更新到 0.24 版,这似乎改变了一些实现。用于使用 0.24 或更高版本处理面包的代码。我认为这可能与列的数据类型有关,这意味着如果
DataFrame
包括非数字列,插值将失败。不过,情况似乎并非如此,因为我最近再次遇到了纯数字 DataFrame
的情况。 .我相信我在某个时候让它起作用了,但我不记得是怎么做的(除了弄乱数据类型)。这是有问题的,因为我现有的代码库必须将 pandas 固定到 0.23 才能使功能正常工作。
最佳答案
对于任何有类似问题的人,由于 1.1.x
之后的新 Pandas 类型,我也遇到了这个错误。 .
对我来说,问题是我试图插入 Int64
的数据。键入,它只会让我进行向前或向后填充。在以前版本的 pandas
中这不是问题,因为类型会自动重铸为 float 以完成插值。
情况不再如此——您需要明确地强制转换为 float ,然后您可以进行插值。是的,这是完全不必要的类型安全。是的,这是一个可怕的错误信息。
关于python - Pandas interpolate 0.24 版本后抛出无效填充方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141908/