无法使用pd.to datetime()在datetime中正确格式化dataframe列

时间:2018-08-19 14:28:05

标签: python pandas datetime strptime strftime

我有一个带有dfdate列的DataFrame number。这些列的类型为object。我想将列df[date]格式化为datetime64[ns],此列应该看起来完全一样。我读过this,并根据它选择了格式的表达式(希望这个表达式看起来不错)。 我的df看起来像这样:

        date number
0  Tue 14-08      3
1  Wed 15-08      5
2  Thu 16-08     10
3  Fri 17-08     18
4  Sat 18-08     22

接下来我要这样做:

df["date"] = pd.to_datetime(df["date"], format = "%a %d-%m")

df["date"]datetime64[ns],但列已更改:

        date number
0 1900-08-14      3
1 1900-08-15      5
2 1900-08-16     10
3 1900-08-17     18
4 1900-08-18     22

我也使用了此方法(但结果与上面相同):

df['date'] = df['date'].apply(lambda x: datetime.datetime.strptime(x,'%a %d-%m'))

和这个(df["date"]看起来像我想要的但dtype是object而不是datetime64[ns]):

df['date'] = df['date'].apply(lambda x: datetime.datetime.\
                              strptime(x,'%a %d-%m').strftime("%a %d-%m"))

要复制的代码:

#import all what we need
import pandas as pd
import datetime
#Create DataFrame
df = pd.DataFrame({"date":["Tue 14-08",
                           "Wed 15-08",
                           "Thu 16-08",
                           "Fri 17-08",
                           "Sat 18-08"],
                   "number":["3","5","10","18","22"]})
print(df.dtypes)
print(df)
#Convert df["date"] column in datetime64[ns]
df["date"] = pd.to_datetime(df["date"], format = "%a %d-%m")
#df['date'] = df['date'].apply(lambda x: datetime.datetime.strptime(x,'%a %d-%m'))
#df['date'] = df['date'].apply(lambda x: datetime.datetime.\
#                              strptime(x,'%a %d-%m').strftime("%a %d-%m"))
#Check df
print(df.dtypes)
print(df)

0 个答案:

没有答案