我需要帮助:pandas 数据集有一个日期列。其中一列中的日期格式为“2021 年 9 月 25 日”。我无法将其转换为“yyyy-mm-dd”格式 (2021-09-25)。这是必要的,以便将来将此数据导入 mysql(我通过 dbever 工作)。 可能是个愚蠢的问题,但我是新手
尝试以这种方式使用 to_datetime 函数(IndexError:列表索引超出范围):
date = {'January': '01', 'February': '02', 'March': '03', 'April': '04', 'May': '05', 'June': '06',
'July': '07', 'August': '08', 'September': '09', 'October': '10', 'November': '11', 'December': '12'}
new_date = []
for d in df['date_added']:
month = d.split(' ')[0]
day = d.split(' ')[1]
year = d.split(', ')[2]
res = year.split('-') + date[month].split('-') + day
new_date.append(res)
我觉得你可以用strftime。这是一个例子:
date_string = "September 25, 2021"
date = pd.to_datetime(date_string)
formatted_date = date.strftime('%Y-%m-%d')
print(formatted_date) #2021-09-25
import pandas as pd
df = pd.DataFrame({'date_added': ['September 25, 2010', 'April 1, 2023']})
print(df)
print()
# If you need actually need datetime object
df.date_added = pd.to_datetime(df.date_added) # dtype = datetime64[ns]
print(df)
print()
# reset dataframe
df = pd.DataFrame({'date_added': ['September 25, 2010', 'April 1, 2023']})
# If you need a formatted string
df.date_added = pd.to_datetime(df.date_added).dt.strftime('%Y-%m-%d') # dtype = object
print(df)
输出:
date_added
0 September 25, 2010
1 April 1, 2023
date_added
0 2010-09-25
1 2023-04-01
date_added
0 2010-09-25
1 2023-04-01
import pandas as pd
df = pd.DataFrame({'date_added': ['September 25, 2010', 'April 1, 2023']})
r = pd.to_datetime(df['date_added'], format='%B %d, %Y')
print(r)
结果
0 2010-09-25
1 2023-04-01
Name: date_added, dtype: datetime64[ns]