Pandas警告:“rows已弃用,请使用index代替”。

3

我正在使用iPython笔记本和pandas处理Kaggle Titanic数据集。

当我创建一个数据透视表时,会出现以下警告:

FutureWarning: rows is deprecated, use index instead warnings.warn(msg, FutureWarning)

这是我应该关注的问题吗?我所做的只是创建一个数据透视表:

import pandas as pd
df = pd.read_csv('https://dl.dropboxusercontent.com/u/5743203/data/titanic/titanic_train.csv')
fare_means = df.pivot_table('Fare', rows='Pclass', aggfunc='mean')

此外,当我尝试使用数据透视表中的值来填充NA值时,会收到以下警告信息:

未来警告:索引类型为Int64Index的标量索引器应该是整数而不是浮点数。 type(self).name),FutureWarning

df['Fare'] = df[['Fare', 'Pclass']].apply(lambda x:
                fare_means[x['Pclass']] if pd.isnull(x['Fare'])
                else x['Fare'], axis=1)

2
第二个警告是提醒您尝试将浮点数用作索引可能会导致平等比较问题的潜在问题,第一个警告显然是参数澄清,建议优先选择“index”而不是“rows”。 - EdChum
3
正如 Ed 所说,pivot_table 在未来希望更加明确关于行透视的设置,因为它将行设置为透视结果的索引。所以请修改您的代码为:fare_means = df.pivot_table('Fare', index='Pclass', aggfunc='mean') 以保证兼容性。 - cwharland
1个回答

1

从 Pandas 1.2.4 中的 pandas.pivot_table 开始,rows 不再是一个参数。

因此,将 rows 改为 index 应该可以解决您的问题。

fare_means = df.pivot_table('Fare', index='Pclass', aggfunc='mean')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接