熊猫日期时间格式

时间:2019-02-28 10:54:34

标签: python pandas python-datetime

目前,我正在处理220万条记录。其中两列由membership_idtxn_time组成。数据框看起来像-

membership_id          txn_time
 1                      2019-02-17 00:00:00.0
 2                      2018-04-23 00:00:00.0
 3                      2018-12-17 00:00:00.0
 4                      2019-02-17 00:00:00.0
 5                      2018-04-02 00:00:00.0
 6                      2018-09-10 06:20:58.0
 7                      2019-01-16 08:11:42.0

我希望数据框看起来像-

membership_id          txn_time
 1                      2019-02-17 
 2                      2018-04-23 
 3                      2018-12-17 
 4                      2019-02-17 
 5                      2018-04-02 
 6                      2018-09-10
 7                      2019-01-16 

我到目前为止所做的-

df_txn['TXN_DATE'] = pd.to_datetime(df_txn['txn_time'], errors='coerce')

但是,它无法正常工作,并且记录数也高达220万。

谢谢。

2 个答案:

答案 0 :(得分:1)

要提高性能,请使用参数format,然后由dt.floor转换为无time的日期时间,如果以后需要类似datetime的函数处理数据,则更好:

df_txn['TXN_DATE'] = pd.to_datetime(df_txn['txn_time'], 
                                    errors='coerce',
                                    format='%Y-%m-%d %H:%M:%S.%f').dt.floor('d')

或者到dt.datepython date,但得到object

df_txn['TXN_DATE'] = pd.to_datetime(df_txn['txn_time'], 
                                    errors='coerce',
                                    format='%Y-%m-%d %H:%M:%S.%f').dt.date

答案 1 :(得分:0)

此lambda函数可帮助您解决问题,而无需使用日期时间库。

df['txn_time'] = df['txn_time'].apply(lambda x:x.split()[0])