Python数据错误:ValueError:int()的无效文字

时间:2018-11-18 11:47:51

标签: python python-3.x pandas

我有以下数据框

customerid                          birthdate   
8a1edbf14734127f0147356fdb1b1eb2    45
8a2ac4745091002b0150a144bcbe58b7    24

customerid是类型non-null object的唯一标识符。但是,我希望将其转换为整数,以便能够对其进行排序和应用功能。

我使用下面的df['customerid'] = pd.to_numeric(df['customerid'], errors='coerce')进行转换,该列现在转换为non-null float64。但是,id现在是NaN

customerid  birthdate   
nan         45
nan         24

我基本上失去了客户编号。我如何转换为整数,并且仍然具有customerid而不是nan的值

1 个答案:

答案 0 :(得分:0)

似乎需要将十六进制值转换为整数:

df['customerid'] = df['customerid'].apply(lambda x: int(x, 16))
print (df)
                               customerid  birthdate
0  183593693287801188128470244383876914866         45
1  183655524454060116426046384483461912759         24

编辑:

期望缺少值,因为不可能将非数字值(字符串)转换为数字-参数errors='coerce'返回每个值的NaN值:

df['customerid'] = pd.to_numeric(df['customerid'], errors='coerce')
print (df)
   customerid  birthdate
0         NaN         45
1         NaN         24