提问人:LexArrow 提问时间:9/25/2023 更新时间:9/25/2023 访问量:445
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''
问:
我有一行 pandas 代码,它给了我一个未来的弃用警告,如标题所述,我在 pandas 文档中找不到如何修改它以删除警告。代码行如下:
df['temp_open']=df['temp_open'].replace('',method='ffill')
任何帮助将不胜感激。
我试图填补空白并且它有效,但我想摆脱警告。
答:
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
函数的参数正在被弃用,取而代之的是函数。method
replace
ffill
文档:
你所要做的是以一种@Timeless回答你的问题的方式重构你的代码。
评论