Python 日期/日期时间,年份形式变量

Python 日期/日期时间,年份形式变量,python,pandas,datetime,Python,Pandas,Datetime,我正在使用熊猫自动清理一些CSV文件。 数据如下所示 date value 1 13 Sep 9 2 5 Oct 8 3 10 Oct 99 我使用以下代码将字符串转换为datetime pd.to_datetime(new_df[0].str.replace(' ', ''), format='%d%b') (更换是为了去除有时会出现的额外空间) 这工作正常-除了日期中没有提供年份,熊猫默认为1900年之外 d

我正在使用熊猫自动清理一些CSV文件。 数据如下所示

      date     value
1    13 Sep     9
2     5 Oct     8 
3    10 Oct     99
我使用以下代码将字符串转换为datetime

pd.to_datetime(new_df[0].str.replace(' ', ''), format='%d%b')
(更换是为了去除有时会出现的额外空间)

这工作正常-除了日期中没有提供年份,熊猫默认为1900年之外

       date     value
1    1900-09-13    9
2    1900-10-05    8 
3    1900-10-10    99
幸运的是,我可以从文件名中获取年份,并将其作为变量“fileyear”备用。但我不确定如何使用它来设置正确的日期

我试过这样的方法:

pd.to_datetime(new_df[0].str.replace(' ', ''), format='%d%b' + '2016') 

但这是行不通的。有人知道如何将(部分)已知的日期提供给datetimeformat吗

使用正则表达式删除两个数字之间的空格,然后使用
pd.to\u datetime

df['clean_date'] = pd.to_datetime(df['date'].str.replace('(?<=^\d).*(?=\d)', '') + ' 2016')

    date    value clean_date
1  1 3 Sep      9 2016-09-13
2    5 Oct      8 2016-10-05
3   10 Oct     99 2016-10-10

df['clean_date']=pd.to_datetime(df['date'].str.replace(“(?使用正则表达式删除两个数字之间的空格,然后使用
pd.to_datetime

df['clean_date'] = pd.to_datetime(df['date'].str.replace('(?<=^\d).*(?=\d)', '') + ' 2016')

    date    value clean_date
1  1 3 Sep      9 2016-09-13
2    5 Oct      8 2016-10-05
3   10 Oct     99 2016-10-10

df['clean_date']=pd.to_datetime(df['date'].str.replace(“(?您需要更新日期格式以包含年份
%d%b%Y

pd.to_datetime(df['date'].str.replace(' ', '')  + '2016', format='%d%b%Y')

1   2016-09-13
2   2016-10-05
3   2016-10-10
Name: date, dtype: datetime64[ns]

您需要更新日期格式以包含年份
%d%b%Y

pd.to_datetime(df['date'].str.replace(' ', '')  + '2016', format='%d%b%Y')

1   2016-09-13
2   2016-10-05
3   2016-10-10
Name: date, dtype: datetime64[ns]

如果没有年份,则默认为1900年-因此,您需要做的是在之后更新它(可能是添加116/117年)。或者,修改文本以包含正确的年份,然后将其转换为包含年份的日期时间…最佳方法可能取决于如何/从何处获取年份。因此,可能只是
pd.to\u datetime(new_df[0].str.replace(“”,)+'2016',format='%d%b%Y')
?如果没有年份,它将默认为1900-因此您需要做的是在以后更新它(可能通过向它添加116/117年?)。或者,修改文本以包含正确的年份,然后将其转换为包含年份的日期时间…最好的方法可能取决于如何/从何处获取年份。因此,可能只需
pd.to_datetime(new_df[0].str.replace(“”,)+“2016”,格式=“%d%b%Y”)