Pandas切片日期类似的字符串和重新安排的日期格式

emeijp43  于 2023-04-10  发布在  其他
关注(0)|答案(1)|浏览(78)

dataframe中的列看起来像DD/MM/YYYY格式。
我想把它切片,重新排列到MM/DD/YYYY(用于计算)
我试过:

import pandas as pd
from io import StringIO

csvfile = StringIO("""
DD/MM/YYYY
01/05/2020
21/02/2021
19/06/2021
05/06/2021
11/06/2021
10/05/2021
")

df = pd.read_csv(csvfile, sep = ',', engine='python')

df['DD/MM/YYYY'] = df['DD/MM/YYYY'].astype(str)

df['MM/DD/YYYY'] = df['DD/MM/YYYY'][3:5] + '/' + df['DD/MM/YYYY'][:2] + '/' + df['DD/MM/YYYY'][-4:]

# df['MM/DD/YYYY'] = pd.to_datetime(df['DD/MM/YYYY'][3:5] + '/' + df['DD/MM/YYYY'][:2] + '/' + df['DD/MM/YYYY'][-4:])

print (df)

但它不起作用。什么才是正确的写法呢?

svmlkihl

svmlkihl1#

使用.str

df['MM/DD/YYYY'] = df['DD/MM/YYYY'].str[3:5] + '/' + df['DD/MM/YYYY'].str[:2] + '/' + df['DD/MM/YYYY'].str[-4:]

如果可能的话,你可以按照format='%d/%m/%Y'中指定的原始格式解析datetime,然后添加Series.dt.strftime

df['MM/DD/YYYY']  = pd.to_datetime(df['DD/MM/YYYY'], format='%d/%m/%Y').st.strftime('%m/%d/%Y')

相关问题