目前,我正在处理220万条记录。其中两列由membership_id
和txn_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万。
谢谢。
答案 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.date
到python 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])