开发者问题收集

在调用 dType 对象的平均值时,Pandas DataFrame TypeError 必须是 str 而不是 int

2019-07-31
898

我正在使用 Pandas 和 python(3) 处理一个数据集,我需要删除其中的空值,因此我尝试对该特定列取平均值来填充空值,但出现以下错误:

TypeError: must be str, not int

当我在 DataFrame 上调用 .info() 时,我得到的数据类型对象为:

object

如果您需要更多信息,这里是数据集的链接: https://www.kaggle.com/orgesleka/imdbmovies

那么,如何获取数据框列中 objectfloat64 类型值的平均值?

提前致谢!

2个回答

您可以在列上使用内置的 .fillna() 方法。

因此,您可能会做这样的事情……

df['column_of_interest'] = pd.to_numeric(df['column_of_interest'])
my_mean = df['column_of_interest'].dropna().mean()

df['column_of_interest'].fillna(my_mean)

您可能需要设置 inplace=True ,否则,如果它不能自动填充 NaN,则只需使用 df['column_of_interest'] = df['column_of_interest'].fillna(my_mean)

Vash
2019-07-31

似乎当您导入 csv 文件时,示例数据使用特定值作为空值

快速修复

df=pd.read_csv('your.csv',na_values = [ '#N/A', 'NA', 'NULL', 'NaN', 'n/a', 'nan', 'null'])

另一个修复

for x in ['wordsintitle', 'imdbrating', 'ratingcount', 'duration', 'year']: 
    df[x]=pd.to_numeric(df[x],errors='coerce')
BENY
2019-07-31