在调用 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
那么,如何获取数据框列中
object
和
float64
类型值的平均值?
提前致谢!
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