我有一个看起来像这样的数据存储在DF中,并且我正在尝试转换“ DATE”列,以便所有日期都采用yyyy-mm-dd格式,而不是yyyy-dd-mm。您可以看到“ TIME”列将日期更改为新的日期(一些未显示的日期已经设置为YYYY-MM-DD格式,但是我正在尝试将所有日期更改为YYYY-MM -DD格式):
DATE TIME BAFFIN BAY GATUN II GATUN I KLONDIKE IIIG \
8778 2016-01-01 1900 8.926278 8.046583 7.649784 7.333993
8779 2016-01-01 2000 8.817666 4.395097 4.748931 6.672631
8780 2016-01-01 2100 8.704014 6.384826 7.128692 6.115349
8781 2016-01-01 2200 8.496358 8.261933 8.166153 6.242737
8782 2016-01-01 2300 8.434297 4.656991 5.894877 5.781445
8783 2016-02-01 0000 8.528372 3.056838 3.086056 5.023564
8784 2016-02-01 0100 8.783731 4.614589 4.894076 5.042875
8785 2016-02-01 0200 8.572500 3.860174 4.641366 5.174426
8786 2016-02-01 0300 8.279557 2.076971 2.644479 5.492729
8787 2016-02-01 0400 8.378920 3.562210 2.806703 5.356025
我试图通过指定格式将其“ DATE”列设置为datetime列,但它什么也没做:
df2['DATE'] = pd.to_datetime(df2['DATE'],format='%Y-%m-%d')
预先感谢您的帮助!
答案 0 :(得分:1)
你能试试吗
pd.to_datetime(df['TIME'], dayfirst=True)
0 2016-01-01
1 2016-01-01
2 2016-01-01
3 2016-01-01
4 2016-01-01
5 2016-01-02
6 2016-01-02
7 2016-01-02
8 2016-01-02
9 2016-01-02
答案 1 :(得分:1)
考虑加入“ DATE”和“ TIME”以获取完整的datetime
列。假设两列都是dtype obj(字符串),则可以使用+
运算符将它们组合在一起,然后使用指定的format调用pd.to_datetime
。例如:
import pandas as pd
df = pd.DataFrame({'DATE': ['2016-01-01', '2016-02-01'],
'TIME': ['1900', '0000']})
df['DateTime'] = pd.to_datetime(df['DATE']+df['TIME'], format='%Y-%d-%m%H%M')
# df['DateTime']
# 0 2016-01-01 19:00:00
# 1 2016-01-02 00:00:00
# Name: DateTime, dtype: datetime64[ns]