应用于除索引外的所有列的\u datetime

2024-05-13 04:19:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个DataFrame,它有一个索引(uid)和9个变量,它们是当前作为字符串的日期。你知道吗

我设法用pd.to_datetime将它们转换为日期时间,但是我想对所有列执行此操作,而不必逐个为所有列编写命令,如下所示:

initData['invited'] = pd.to_datetime(initData['invited'], dayfirst = True)
initData['sign_up'] = pd.to_datetime(initData['sign_up'], dayfirst = True)
initData['card_activated'] = pd.to_datetime(initData['card_activated'], dayfirst = True)

我怎么才能做得更优雅呢?我尝试了.apply,但出现了一个错误,因为它也尝试将数据帧索引转换为datetime。你知道吗


Tags: to字符串truedataframeuiddatetimecardpd
1条回答
网友
1楼 · 发布于 2024-05-13 04:19:35

使用^{}

initData = initData.apply(pd.to_datetime, dayfirst=True)
#same as
#initData = initData.apply(lambda x: pd.to_datetime(x, dayfirst = True))

样品:

initData = pd.DataFrame({'A':['01-01-2017','02-01-2017','03-01-2017'],
                   'B':['05-01-2017','06-01-2017','07-01-2017'],
                   'C':['01-01-2017','02-01-2017','03-01-2017']})

print (initData)
            A           B           C
0  01-01-2017  05-01-2017  01-01-2017
1  02-01-2017  06-01-2017  02-01-2017
2  03-01-2017  07-01-2017  03-01-2017

initData = initData.apply(pd.to_datetime, dayfirst=True)

print (initData)
           A          B          C
0 2017-01-01 2017-01-05 2017-01-01
1 2017-01-02 2017-01-06 2017-01-02
2 2017-01-03 2017-01-07 2017-01-03

print (initData.dtypes)
A    datetime64[ns]
B    datetime64[ns]
C    datetime64[ns]
dtype: object

相关问题 更多 >