pandas,格式日期从dd/mm/yyyy到mmm dd/yy

deyfvvtc  于 2021-07-13  发布在  Java
关注(0)|答案(3)|浏览(526)

我想把日期改为 dd/mm/yyyyMMM dd/yy . ie公司 15/04/2021APR 15/21 我的 Date 列格式为 object 我是这样做的: df['Date'] = pd.to_datetime(df['Date'], format='%MMM %DD/%YY') 但我越来越 ValueError: time data '15/04/2021' does not match format '%MMM %dd/%yy' (match) 任何帮助都将不胜感激。

n8ghc7c1

n8ghc7c11#

>>> import pandas as pd

>>> df = pd.DataFrame({'Date':['15/04/2021', '12/05/2021', '4/6/2021']})
>>> df
         Date
0  15/04/2021
1  12/05/2021
2    4/6/2021

>>> df['Date'] = pd.to_datetime(df['Date'])
>>> df
        Date
0 2021-04-15
1 2021-12-05
2 2021-04-06

>>> df['date_formated'] = df['Date'].dt.strftime('%b %d/%y').str.upper()
>>> df
        Date date_formated
0 2021-04-15     APR 15/21
1 2021-12-05     DEC 05/21
2 2021-04-06     APR 06/21

>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
 #   Column         Non-Null Count  Dtype         
---  ------         --------------  -----         
 0   Date           3 non-null      datetime64[ns]
 1   date_formated  3 non-null      object        
dtypes: datetime64[ns](1), object(1)
memory usage: 176.0+ bytes
ego6inou

ego6inou2#

你需要转换你原来的 Date 列到 datetime 格式(默认情况下,Pandas将日期作为字符串读取)。完成此操作后,只需更改显示格式。
试试这个:


# Convert to datetime

df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%y')

# Solution for title: change display to 'MMM dd/y'

df['Date'] = df['Date'].dt.strftime('%b %d/%y').astype(str).str.upper()

# Solution for comment: change display to 'MMM dd y'

df['Date'] = df['date'].dt.strftime('%b %d %y').astype(str).str.upper()
sg24os4d

sg24os4d3#

试试看-

df.loc['Date'] = pd.to_datetime(df.Date).dt.strftime('%b %d/%y').str.upper()

相关问题