试图从对象列(Pandas-Python)中获取平均值,但得到TypeError:只能将str(而不是"float")连接到str



我正在进行2020年StackOverflow开发人员调查。有一个列'YearsCode'。你从事编程工作多少年了?该列的数据类型为"object"。我试着从这一列中找到均值。我尝试了以下步骤,但发现了一个错误——

df['YearsCode'].unique() # here I found 'less than 1 year', 'more than 50 years'.
df['YearsCode'].replace('Less than 1 year',0,inplace = True)
df['YearsCode'].replace('More than 50 years',51,inplace = True) 
df['YearsCode'].astype(float)
# to avoid nan values we will use skipna
df['YearsCode'].mean(skipna=False) 
# returns---TypeError: can only concatenate str (not "float") to str   
#if I make NaN values to 0, by mean will not be right

您的df['YearsCode'].astype(float)语句没有生效,因为它没有"置入"。它返回一个序列,但不改变df['YearsCode']

的原始值。试题:

df['YearsCode'] = df['YearsCode'].astype(float)
df['YearsCode'].mean(skipna=False)

或简单的:

df['YearsCode'].astype(float).mean(skipna=False)

第一次,我替换了原来的&;yearscode&;使用浮点类型"YearsCode"。第二次,我直接在浮点类型&;yearscode&;上计算.mean()

相关内容

  • 没有找到相关文章