Pandas 日期时间格式

Pandas date time format

目前,我正在处理 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 万。

提前致谢。

为了提高性能使用参数 format,然后通过 dt.floor 转换为没有 times 的日期时间,如果以后需要通过 datetimelike 函数处理数据更好:

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

python dates by dt.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

这个 lambda 函数可以帮助您在不使用 datetime 库的情况下解决问题。

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