我已将两个工作表分别读入pandas数据帧。两者都有日期发布列。
在两个工作表中,列都以ex格式保存为dd / mm / yyyy。
ws1
13/02/2017
01/02/2017
08/11/2016
05/08/2016
16/03/2017
53 2017-02-13
51 2017-02-01
22 2016-11-08
0 2016-08-05
63 2017-03-16
Name: Date Issued, dtype: datetime64[ns]
但是ws2
08/03/2017
24/08/2016
28/11/2016
26/10/2016
10/03/2017
0 2017-03-08 00:00:00
1 2016-08-24 00:00:00
2 2016-11-28 00:00:00
3 2016-10-26 00:00:00
4 2017-03-10 00:00:00
Name: Date Issued, dtype: object
为什么dtypes不同,我如何申请删除时间?
目前,代码处理pandas似乎没什么特别的。
df = pd.read_excel(file, 'ws2')
df = df.loc[:, ['Date Issued', 'Person ID',
'First Name', 'Surname', 'Type', 'Amount']]
df = df.sort_values(by=['Surname'])
df['Date Issued'] = pd.to_datetime(df_loan['Date Issued'], dayfirst=True)
我试过用;
df['Date Issued'] = pd.to_datetime(df['Date Issued'], dayfirst=True)
但是得到以下错误;
TypeError: invalid string coercion to datetime
也;
df['Date Issued'] = df['Date Issued'].astype('datetime64[ns]')
但是得到了这个错误;
ValueError: Error parsing datetime string " " at position 1
答案 0 :(得分:1)
似乎至少有一个非日期时间值。
因此需要参数errors='coerce'
将这些值转换为to_datetime
中的NaT
(NaN
日期时间):
df['Date Issued'] = pd.to_datetime(df['Date Issued'], dayfirst=True, errors='coerce')