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

标签 python pandas typeerror

我是 python 新手。我有一个 .csv 数据集。有一个名为 BasePay 的列。

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

我正在尝试获取 BasePay 的平均值:

sal['BasePay'].mean()

但它给我的错误是:

TypeError: can only concatenate str (not "int") to str.

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

谢谢。

最佳答案

因为一些非数值使用to_numeric使用 errors='coerce' 将它们转换为 NaN,因此 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

关于Python - 如果也有字符串值,如何获取列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55256184/

相关文章:

python - 什么是 Python 映射?

python - 从 Python 运行 PEP8 检查

python - 堆叠 MultiIndex 的所有级别

python - Windows 上的 Tensorflow contrib.layers 兼容性

python - 替换数据框中列表的名称

javascript - AngularJS 类型错误

python - 在 GeoPandas 或 Shapely 中合并多边形(形成一个几何图形)

python - 加速比较句子的比较功能

python - 向量化 pandas.DataFrame 的整合

javascript - 未捕获的类型错误 : Cannot call method 'toLowerCase' of undefined