我遇到了 Pandas v2.1.0+ 的问题,我无法弄清楚。
我的 pandas 数据框中有一个列列表,需要使用自定义函数进行转换。新值取决于数据中的多个列,因此我使用 apply 就地转换列:
my_columns_to_convert = ['col1','col2','col3']
for k in my_columns_to_convert:
df[k] = df[[k,colx]].apply(lambda x: convert_my_data(value_1_in=x[0],value_2_in=x[1]),axis=1)
Run Code Online (Sandbox Code Playgroud)
这在以前版本的 pandas 中运行得很好。但现在我得到:
FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
Run Code Online (Sandbox Code Playgroud)
但我没有使用 loc 或 iloc,到目前为止我所审查的所有内容似乎都表明这是问题所在。我该如何编写这段代码,以便将来以“正确”的方式进行操作?
在 Pandas 中使用以前的方法确实有效。