在数据框中将对象转换为int

时间:2020-02-28 18:26:16

标签: python pandas integer valueerror

我有一个看起来像这样的数据框

RangeIndex: 144 entries, 0 to 143
Data columns (total 4 columns):
Manager ID      144 non-null object
Defect Count    144 non-null object
Transactions    144 non-null object
DPMO            144 non-null object

我想将缺陷计数,事务处理和DPMO转换为整数以进行一些计算。我使用astype将其转换为整数,但它抛出了valueValue错误。我尝试过的仅用于“缺陷计数”。我如何一次转换所有3个。我也尝试了to_numeric,但是将我的大部分数据转换为'NAN'。 valueError上的“ 2,721”是缺陷计数数据之一。

Managers_DPMO['Defect Count'] = Managers_DPMO['Defect Count'].astype(str).astype(int)

ValueError: invalid literal for int() with base 10: '2,721'

2 个答案:

答案 0 :(得分:0)

您至少有一个用逗号分隔符的值。 尝试以以下方式读取文件:

df.read_csv('filename.csv', thousands=',')

另一个选项可以是:

Managers_DPMO['Defect Count']=pd.to_numeric(Managers_DPMO['Defect Count'], downcast='integer')

答案 1 :(得分:0)

除了0buz答案外,您还可以尝试替换剥离有问题的字符,然后将其转换为int的方法:

Managers_DPMO['Defect Count'] = Managers_DPMO['Defect Count'].str.strip(',.').astype(int)