代码之家  ›  专栏  ›  技术社区  ›  Furkan Karacan

Python—如果还有字符串值,如何获取列的平均值

  •  1
  • Furkan Karacan  · 技术社区  · 5 年前

    我对蟒蛇还不熟悉。我有一个.csv数据集。有一个栏目叫做“基本工资”。

    列中的大多数值都是int类型,但有些值“未提供”。

    我试图得到基本工资的平均值:

    sal['BasePay'].mean()
    

    TypeError:只能将str(而不是“int”)连接到str。

    我想省略字符串列。我该怎么做?

    2 回复  |  直到 5 年前
        1
  •  2
  •   jezrael    5 年前

    因为有些非数值使用 to_numeric 具有 errors='coerce' 把它们转换成 NaN s、 所以呢 mean

    out = pd.to_numeric(sal['BasePay'], errors='coerce').mean()
    

    样品 :

    sal = pd.DataFrame({'BasePay':[1, 'Not Provided', 2, 3, 'Not Provided']})
    print (sal)
            BasePay
    0             1
    1  Not Provided
    2             2
    3             3
    4  Not Provided
    
    print (pd.to_numeric(sal['BasePay'], errors='coerce'))
    0    1.0
    1    NaN
    2    2.0
    3    3.0
    4    NaN
    Name: BasePay, dtype: float64
    
    out = pd.to_numeric(sal['BasePay'], errors='coerce').mean()
    print (out)
    2.0
    
        2
  •  1
  •   user11230797    5 年前

    这个问题是因为,当您导入数据集时,空字段将被NaN(pandas)填充,因此您有两个选项1。要么将pandas.NaN转换为0,要么通过drop.NaN删除NaN

        3
  •  1
  •   Ole Kristian    5 年前

    for i in l:
    if type(i) == int:
        x.append(i)
    
    mean = sum(x) / len(x)
    print(mean)