【发布时间】:2021-07-17 17:00:01
【问题描述】:
我正在尝试编写一个 python 函数来返回 pandas 数据框列的均值或模式,具体取决于列数据类型。如果 df 列包含字符串,它应该返回模式。如果 df 列包含数字,它应该返回平均值。
这是我的代码:
def calc_mean_mode(df, column_name):
mean = round(df[column_name].mean(), 2)
mode = df[column_name].mode()
if df[column_name].dtypes == 'O':
return mode
else:
return mean
但是我不断收到类型错误: TypeError:只能将str(不是“int”)连接到str
【问题讨论】:
-
分别使用
isinstance(df[column_name], str)和int。 -
我也面临同样的问题,测试结果为假。 df 已在年龄以下开始,而 df_clean 具有实际年龄。这可能是问题吗?