Python pandas-将日期和时间列连接到带有时区的datetime列中

Python pandas-将日期和时间列连接到带有时区的datetime列中,python,pandas,datetime,datetimeindex,Python,Pandas,Datetime,Datetimeindex,我有一个数据集,它有一个日期列和一个时间列,我试图将它们合并到一个日期时间列中,但我面临一个问题,它的月份和日期部分被颠倒了 例如: Date Time 1/2/2019 3:29:59 PM 4/2/2019 9:15:59 AM 这些日期为2019年2月1日和2月4日 当我将它们放入数据框并格式化时: data = pd.read_csv('{}/{}.csv'.format(data_path,symbol), parse_dates=[['Date','Time']

我有一个数据集,它有一个日期列和一个时间列,我试图将它们合并到一个日期时间列中,但我面临一个问题,它的月份和日期部分被颠倒了

例如:

Date       Time
1/2/2019   3:29:59 PM
4/2/2019   9:15:59 AM
这些日期为2019年2月1日和2月4日

当我将它们放入数据框并格式化时:

data = pd.read_csv('{}/{}.csv'.format(data_path,symbol), parse_dates=[['Date','Time']])
data.columns = map(str.lower, data.columns)
data['timedelta'] = pd.Series([pd.Timedelta(seconds=59) for i in range(len(data['date_time']))])
data['date_time'] = data['date_time'] - data['timedelta']
data = data.set_index('date_time').tz_localize('Asia/Kolkata')
我得到这个输出:

Datetime
2019-01-02 15:29:00+0530
2019-04-02 09:15:00+0530
如您所见,DateTime对象用于2019年1月2日和4月2日

如果您能帮助我确定如何正确设置日期时间列的格式,我将不胜感激。

首先,运行此df['Date']=pd。要更改日期格式,请使用datetimedf['Date'],format='%d/%m/%Y'。然后,您可以合并日期和时间。完整代码如下:

data = pd.read_csv('{}/{}.csv'.format(data_path,symbol), parse_dates=[['Date','Time']])
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')
data.columns = map(str.lower, data.columns)
data['timedelta'] = pd.Series([pd.Timedelta(seconds=59) for i in range(len(data['date_time']))])
data['date_time'] = data['date_time'] - data['timedelta']
data = data.set_index('date_time').tz_localize('Asia/Kolkata')

读取csv后,将以下内容添加到代码中:

df['Date']=pd.to_datetimedf['Date'],format='%d/%m/%Y'

调用read\u csv时,将dayfirst设置为True,以便正确解析日期。使用dt.Floor的楼层到分钟数:


哇,这是一个很棒的解决方案。非常感谢。
data = pd.read_csv(f'{data_path}/{symbol}.csv', parse_dates=[['Date','Time']], dayfirst=True)

data = data.set_index(data['Date_Time'].dt.floor('min')).tz_localize('Asia/Kolkata')

# need to drop col used as index separately here:
data = data.drop(['Date_Time'], axis=1)