pandas 如何在dataframe中将字符串转换为日期格式?[重复]

zphenhs4  于 2023-04-28  发布在  其他
关注(0)|答案(1)|浏览(150)

此问题已在此处有答案

How to convert string to datetime format in pandas python?(3个答案)
pandas: convert datetime to end-of-month(6个答案)
4天前关闭。
我正在使用失业统计数据框架,日期格式为2010 AUG,2018 DEC。我想将其转换为日期格式,并包括该月的最后一天,2010-31-08或08/31/2010。pd.to如果月份是字符串,使用字母而不是数字,我不能使用www.example.com _datetime,对吗?
我似乎只能找到关于如何转换时,格式是使用数字的信息。我需要手动改变一月到01,二月到02等?

flvlnr44

flvlnr441#

将String转换为Date

您仍然可以使用Python中内置的datetime模块中的datetime.strptime()函数将日期字符串转换为datetime对象。
下面是一个示例代码,用于将日期字符串转换为日期时间对象,其中包含该月的最后一天:

from datetime import datetime
import pandas as pd

# create a sample DataFrame
df = pd.DataFrame({'date_string': ['2010 AUG', '2018 DEC']})

# define a function to convert date strings to datetime objects with last day of month
def convert_date(date_string):
    # convert month name to number
    month_num = datetime.strptime(date_string, '%Y %b').month
    # get the last day of the month
    last_day = pd.Timestamp(datetime.strptime(date_string, '%Y %b').replace(day=1) \
                           + pd.DateOffset(months=1) - pd.DateOffset(days=1))
    # combine year, month, and day to create datetime object
    datetime_obj = datetime.strptime(f"{date_string.split(' ')[0]}-{month_num:02d}-{last_day.day:02d}", '%Y-%m-%d')
    return datetime_obj

# apply the function to the 'date_string' column to create a new 'date' column
df['date'] = df['date_string'].apply(convert_date)

# print the resulting DataFrame
print(df)

输出将是:

date_string       date
0     2010 AUG 2010-08-31
1     2018 DEC 2018-12-31

说明

1.创建一个示例DataFrame,其中包含一列日期字符串,格式为YYYY MON
1.然后,定义一个函数convert_date(),它接受一个日期字符串作为输入,使用datetime.strptime()将月份名称转换为相应的数字,使用pd.Timestamp()获取该月的最后一天,并组合年、月和日以创建一个datetime对象。
1.然后使用apply()方法将此函数应用于'date_string'列,以创建一个包含datetime对象的新'date'列。
1.打印结果DataFrame

相关问题