如何查找系列中的所有字符串-数据科学

问题描述

我有以下问题。我在旧金山有一份工资档案。在 BasePay 列中,我想计算一个平均值。但是,我在列中有几个字符串,我无法计算任何内容。有没有可能一次找到一列中的所有字符串?我不知道如何摆脱字符串或将它们转换为数字。

解决方法

如果您的列具有混合类型,则它具有对象数据类型。这就像循环遍历一个普通的 python 列表一样慢。另外,你是如何处理字符串的?它们可以转换为数值还是只是无效的条目?如果它们无效,它们可能不应该计入列的基数。如果您需要更好的帮助,请发布您的数据样本。

import pandas as pd
df = pd.DataFrame({'salary':[60_000,50_000,'NA',40_000]})

total = 0
n = 0
for s in df.salary:
    try:
        # should only work for numeric values
        total+=s
        n+=1
    except:
        pass
average = total / n
print(average)
,

一种方法是过滤掉salary是字符串的所有时间,然后求平均值:

df[~(df["salary"].map(lambda x: isinstance(x,str)))].mean()