pandas DataFrame 的列包含如下值:
d = {'Col1' : pd.Series(['07','','10','06']),'Col2' : pd.Series([1., 2., 3.])}
我想删除一些整数前面的0,即07->7、06->6,而10是可以的。 我该怎么做(包括空单元格的处理)?
我试过这段代码,但它给出了一个错误 ValueError: invalid literal for int() with base 10: ''
df['Col1'] = df['Col1'].apply(lambda x: int(x))
请您参考如下方法:
int() 函数不适用于空字符串,但您可以通过回退轻松修复它,以防值为 falsy(而空字符串确实是 falsy):
df['Col1'] = df['Col1'].apply(lambda x: int(x or 0))
int(x) 将在值为非空时调用,int(0) 为非空时(假设您想要用零代替空值) .
