【问题标题】:Python function to return mean or mode of a pandas dataframe column, depending on the column data typePython函数返回熊猫数据框列的平均值或模式,具体取决于列数据类型
【发布时间】: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 具有实际年龄。这可能是问题吗?

标签: python pandas dataframe


【解决方案1】:

试试这个:

def calc_mean_mode(df, column_name):
   if df[column_name].dtypes == 'O': 
       output = df[column_name].mode()
   else:
       output = round(df[column_name].mean(), 2)

   return output

【讨论】:

  • 请解释一下您的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
  • 2019-04-22
  • 2022-01-25
  • 2020-08-09
  • 2021-03-10
相关资源
最近更新 更多