如何在 Pandas 中将列转换为一个日期时间列? [英] How to convert columns into one datetime column in pandas?

查看:33
本文介绍了如何在 Pandas 中将列转换为一个日期时间列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据框,其中前 3 列是MONTH"、DAY"、YEAR"

I have a dataframe where the first 3 columns are 'MONTH', 'DAY', 'YEAR'

每一列都有一个整数.是否有一种 Pythonic 方法可以将所有三列转换为数据框中的日期时间?

In each column there is an integer. Is there a Pythonic way to convert all three columns into datetimes while there are in the dataframe?

来自:

M    D    Y    Apples   Oranges
5    6  1990      12        3
5    7  1990      14        4
5    8  1990      15       34
5    9  1990      23       21

进入:

Datetimes    Apples   Oranges
1990-6-5        12        3
1990-7-5        14        4
1990-8-5        15       34
1990-9-5        23       21

推荐答案

在 0.13(即将推出)中,这经过了大量优化并且相当快(但在 0.12 中仍然相当快);比循环快两个数量级

In 0.13 (coming very soon), this is heavily optimized and quite fast (but still pretty fast in 0.12); both orders of magnitude faster than looping

In [3]: df
Out[3]: 
   M  D     Y  Apples  Oranges
0  5  6  1990      12        3
1  5  7  1990      14        4
2  5  8  1990      15       34
3  5  9  1990      23       21

In [4]: df.dtypes
Out[4]: 
M          int64
D          int64
Y          int64
Apples     int64
Oranges    int64
dtype: object

# in 0.12, use this
In [5]: pd.to_datetime((df.Y*10000+df.M*100+df.D).apply(str),format='%Y%m%d')

# in 0.13 the above or this will work
In [5]: pd.to_datetime(df.Y*10000+df.M*100+df.D,format='%Y%m%d')
Out[5]: 
0   1990-05-06 00:00:00
1   1990-05-07 00:00:00
2   1990-05-08 00:00:00
3   1990-05-09 00:00:00
dtype: datetime64[ns]

这篇关于如何在 Pandas 中将列转换为一个日期时间列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆