如何将数据帧字符串转换为日期时间

How to convert dataframe string into date time

df['Year,date']
 Sep 10 
1       Sep 16 
2       Aug 01 
3       Sep 30 
4       Sep 28 
         ...   
2230    Jul 20 
2231    Oct 26 
2232    Oct 13 
2233    Dec 31 
2234    Jul 08 
Name: Year,date, Length: 2235, dtype: object

这是我的数据框,我想将每一行转换为数据时间 在月份和日期、格式中,我已经尝试了一些代码,但我的代码没有用。

欢迎来到 Stack Overflow。要将您提到的数据框从字符串转换为日期时间,您可以使用以下代码。 初始数据

from datetime import datetime
data = {'date': ['Sep 16', 'Aug 01', 'Sep 30', 'Sep 16']}
df=pd.DataFrame(data)
df.info()
>>  #   Column  Non-Null Count  Dtype 
   ---  ------  --------------  ----- 
    0   date    4 non-null      object

print(df)
>>     date
   0  Sep 16
   1  Aug 01
   2  Sep 30
   3  Sep 16

转换为日期时间....

pd.to_datetime(df['date'],format='%b %d').dt.to_period('M')
df.info()
>> #   Column  Non-Null Count  Dtype         
   ---  ------  --------------  -----         
   0   date    4 non-null      datetime64[ns]
   dtypes: datetime64[ns](1)
print(df)
>>         date
     0 1900-09-16
     1 1900-08-01
     2 1900-09-30
     3 1900-09-16

您可能已经注意到年份被设为 1900,因为这是默认值。所以,如果你今年需要它,你会这样做...

from datetime import datetime
data = {'date': ['Sep 16', 'Aug 01', 'Sep 30', 'Sep 16']}
df=pd.DataFrame(data)
df.date = datetime.now().strftime("%Y") + " " + df.date
df.date = pd.to_datetime(df.date, format='%Y %b %d')
print(df)
>>    date
   0 2022-09-16
   1 2022-08-01
   2 2022-09-30
   3 2022-09-16

现在日期以日期时间格式存储在数据框中,如果您想以 mon dd 格式查看此信息,则需要这样做...

print(df.date.dt.strftime("%b %d"))
>> 0    Sep 16
   1    Aug 01
   2    Sep 30
   3    Sep 16

请注意 df 中的日期仍为日期时间格式。