有一个大的文本和数字混合表,我从大表中透视一个较小的集合。当我更新到Python 3.11时,我现在收到了一个关于我的枢轴的FutureWarning。
df = df.pivot_table(df2,index=['My_text_Column'], aggfunc='sum').reset_index()
代码运行正常,但结果是
FutureWarning: numeric_only in的默认值DataFrameGroupBy。Sum已弃用。在将来的版本中,numeric_only默认为False。指定numeric_only或select only对于函数应该有效的列。
我应该使用的更新代码是什么?
我在这里的代码中遇到了完全相同的问题https://www.geeksforgeeks.org/pivot-tables-in-pandas/
添加values = "Marks">
# pivot_table() method
display(pd.pivot_table(df, index = ["ID", "Name"]))
所以我有:-
display(pd.pivot_table(df, values="Marks", index = ["ID", "Name"]))
删除警告。我试着使用:-
display(pd.pivot_table(df, numeric_only = None, index = ["ID", "Name"]))
但是得到了警告TypeError: pivot_table() got an unexpected keyword argument 'numeric_only'
。因此,在pivot_table()中指定'numeric_only = True'似乎并不是什么大事。
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html上的pandas文档也没有让它更清晰。
display(pd.pivot_table(df, numeric_only = None, index = ["ID", "Name"]))
问题是df中存在非数值数据。为了调用pivot_table函数,应该替换'values'中的非数字数据:
df.replace('non numeric string', np.nan, inplace=True)
display(df.pivot_table(df, index = 'ID', columns='Name', values='Data'))