它类似于analyticsmarket.com,但解决方案并没有解决我的问题。
我使用pandas的astype函数将字符串解析为int32
格式的数据,但由于原始数据中存在一些异常值,因此会导致ValueError异常。
我想删除错误的行数据。
我的代码是:
df['DRIVEDIR'] = df['DRIVEDIR'].astype('int32')
df
(一个小子集)是:
DRIVEDIR
PASSTIME
2017-06-02 11:01:08.247000+08:00 3
2017-06-02 11:00:55.710000+08:00 2
2017-06-02 11:00:41.139000+08:00 鲁XXX
2017-06-02 07:43:41.818000+08:00 2
2017-06-02 11:04:21.317000+08:00 3
2017-06-02 11:04:18.460000+08:00 2
2017-06-02 11:04:13.159000+08:00 1
我尝试使用df['DRIVEDIR'] = df['DRIVEDIR'].astype('int32',errors= 'ignore')
,但它无法将dtype表单对象更改为int32,以后我无法处理它。所以,如何从数据框中删除错误的行当使用astype从object到int32获取ValueError时。
答案 0 :(得分:0)
如我的评论所述,请使用pd.to_numeric
。无效的项目被强制转换为NaN
。然后,您可以将其过滤掉,然后转换为int
。
pd.to_numeric(df.DRIVEDIR, errors='coerce').dropna().astype(int)
2017-06-02 3
2017-06-02 2
2017-06-02 2
2017-06-02 3
2017-06-02 2
2017-06-02 1
Name: DRIVEDIR, dtype: int64