Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 日期时间转换_Python_Pandas_Pandas Groupby - Fatal编程技术网

Python 日期时间转换

Python 日期时间转换,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我正在从其中一个文件中提取数据,该文件的日期存储为 3月20日 使用熊猫,我想转换为20/03/2020 我尝试使用strftime,到_datetime使用错误,但仍然无法转换 此外,当我按日期分组时,它以数字形式存储date列,如下所示: 1月1日、2月1日、3月1日,然后是1月2日、2月2日、3月2日 我如何解决这个问题 import pandas as pd def to_datetime_(dt): return pd.to_datetime(dt + " 2020") 要

我正在从其中一个文件中提取数据,该文件的日期存储为
3月20日
使用熊猫,我想转换为
20/03/2020

我尝试使用
strftime
到_datetime
使用错误,但仍然无法转换

此外,当我按日期分组时,它以数字形式存储
date
列,如下所示:
1月1日、2月1日、3月1日,然后是1月2日、2月2日、3月2日

我如何解决这个问题

import pandas as pd

def to_datetime_(dt):
    return pd.to_datetime(dt + " 2020")
要获取熊猫2020年的时间戳,请始终

import pandas as pd
import datetime

df = pd.DataFrame({
    'dates': ['1 January', '2 January', '10 March', '1 April']
})

df['dates'] = df['dates'].map(lambda x: datetime.datetime.strptime(x, "%d %B").replace(year=2020))

 # Output

    dates
0   2020-01-01
1   2020-01-02
2   2020-03-10
3   2020-04-01

如果
year
始终为
2020
,则使用以下代码:

df = pd.DataFrame({'date':['20 March','22 March']})
df['date_new'] = pd.to_datetime(df['date'], format='%d %B')
如果显示年份为
1900
,则:

df['date_new'] = df['date_new'].mask(df['date_new'].dt.year == 1900, df['date_new'] + pd.offsets.DateOffset(year = 2020))
print(df)
       date   date_new
0  20 March 2020-03-20
1  22 March 2020-03-22

此外,您还可以根据需要转换日期格式。

因此年份应始终为2020年?是的,日期应为2020年。
datetime
代表什么?因为当我尝试这一点时,它说日期时间没有定义。例如,我想将该列中的所有值转换为
20-03-2020
。你能详细说明一下吗?你可以使用
df['date']=df['date'].map(lambda x:to_datetime_uux))
用上面的代码,你可以从那里转换成你想要的任何东西,例如datetime.date
df['date']=df['date'].map(lambda x:to_datetime_uu(x).date())
for
20-03-2020
use
df['date']=df['date'].map(lambda x:to_datetime_u(x).strftime(%d-%m-%Y))
值错误:日期超出了月份的范围当我在第一个代码块中使用代码时,我发现了这个错误。您可以在数据框中添加几行吗?