使用熊猫同时具有数字和文本的总和列

时间:2019-09-18 12:34:33

标签: python excel pandas sum

我有一列既包含数字又包含文本的列,并且我试图找到这些值的总和。

我在下面尝试了这个求和函数,但是没有用。请您告诉我我还能尝试什么?

df["Price"].sum()

enter image description here

3 个答案:

答案 0 :(得分:4)

使用pd.to_numeric

例如:

df = pd.DataFrame({"Price": ["Nil", "Na", 1,2,3,4,5, "Null"]})

print(df[pd.to_numeric(df['Price'], errors='coerce').notnull()].sum())
#or
print(pd.to_numeric(df['Price'], errors='coerce').dropna().sum())

输出:

Price    15.0
dtype: float64

答案 1 :(得分:1)

您可以这样做

df.Price[df.Price.astype(str).str.isnumeric()].sum()

答案 2 :(得分:0)

如果所有值都是数字,则可以使用:

print(sum(df['Price']))

但是您可以使用以下方法:

import numbers
print(sum([x for x in df['Price'] if isinstance(x, numbers.Number)]))