如果不在excel列中,我如何从Pandas df列中删除时间?

时间:2017-07-10 14:00:05

标签: python excel pandas

我已将两个工作表分别读入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

1 个答案:

答案 0 :(得分:1)

似乎至少有一个非日期时间值。

因此需要参数errors='coerce'将这些值转换为to_datetime中的NaTNaN日期时间):

df['Date Issued'] = pd.to_datetime(df['Date Issued'], dayfirst=True, errors='coerce')