Pandas 2.1.0 警告 ''Series.replace 中的 'method' 关键字已弃用,将在将来的版本中删除''

Pandas 2.1.0 warning ''The 'method' keyword in Series.replace is deprecated and will be removed in a future version''

提问人:LexArrow 提问时间:9/25/2023 更新时间:9/25/2023 访问量:445

问:

我有一行 pandas 代码,它给了我一个未来的弃用警告,如标题所述,我在 pandas 文档中找不到如何修改它以删除警告。代码行如下:

df['temp_open']=df['temp_open'].replace('',method='ffill')

任何帮助将不胜感激。

我试图填补空白并且它有效,但我想摆脱警告。

python pandas 数据帧 替换 用警告

评论


答:

6赞 Timeless 9/25/2023 #1

您可以改为这样做:

df["temp_open"] = df["temp_open"].replace("", None).ffill()

如果你想保持空值(如果有的话)不变,你可以使用:

df["temp_open"] = (
    df["temp_open"].replace("", None).ffill().where(df["temp_open"].notnull())
)

输出:

print(df)

  temp_open
0         A
1         A
2       NaN
3         B
4         C
5         C

使用的输入:

df = pd.DataFrame({"temp_open": ["A", "", None, "B", "C", ""]})
-1赞 letdatado 9/25/2023 #2

您遇到的警告可能与使用带有空字符串 '' 的方法参数有关。在旧版本的 Pandas 中,允许使用空字符串 '' 作为 replace 方法的方法参数,但在较新版本的 Pandas 中不再支持。

若要删除警告并更新代码以使用正确的语法,可以使用适当的方法来正向填充缺失值。您可以改用 fillna 并将 method 参数设置为“ffill”。

df['temp_open'] = df['temp_open'].fillna(method='ffill')

评论

1赞 jlipinski 9/25/2023
“fillna”中的方法关键字在同一版本中也被弃用,这行代码实际上会产生相同的弃用警告。
1赞 mlokos 9/25/2023 #3

函数的参数正在被弃用,取而代之的是函数。methodreplaceffill

文档:

你所要做的是以一种@Timeless回答你的问题的方式重构你的代码。