Python Pyhthon:pd.DateOffset导致索引重复

Python Pyhthon:pd.DateOffset导致索引重复,python,pandas,datetime,Python,Pandas,Datetime,我想更改时间序列的时间戳dataframe。第一行的现有日期时间是01/01/2001 04:30:00。我想把它改成05/12/2011 19:30:00,其余的(长达五年的5分钟记录)应该在后面 我使用了以下命令: df['DateTime']=df['DateTime']-pd.DateOffset(年=-10,月=-11,天=0,小时=9,分钟=0) 它可以工作,但也引入了数千个重复的日期时间。 我还不知道原因是什么 好奇的是,如何正确的方式来改变日期时间,我想上面 这是数据 添加1:

我想更改时间序列的时间戳
dataframe
。第一行的现有日期时间是
01/01/2001 04:30:00
。我想把它改成
05/12/2011 19:30:00
,其余的(长达五年的5分钟记录)应该在后面

我使用了以下命令:
df['DateTime']=df['DateTime']-pd.DateOffset(年=-10,月=-11,天=0,小时=9,分钟=0)

它可以工作,但也引入了数千个重复的日期时间。
我还不知道原因是什么

好奇的是,如何正确的方式来改变日期时间,我想上面

这是数据

添加1:
我在DateTime列中检查了原始文件是否存在重复项:

duplicaterows = df[df.duplicated(['DateTime'])]
print("Duplicate Rows:\n", duplicaterows)

# Result:    

Duplicate Rows:
                   DateTime   data
176252 2002-09-08 10:45:00  22.23
393863 2004-10-28 05:55:00  26.21
显示了两行,但我没有发现它们是重复的。不知道为什么

添加2:
对于仍然对这个问题感兴趣的您。转换过程中的错误经常发生。也就是说,每次原始时间戳从2月28日23:55:00过渡到持续一个月的第二天,增量月都会发生变化。增量天数和时间的变化更频繁。未观察到增量年的变化

original               new
28/02/2001 23:55:00    28/01/2012 14:55:00
01/03/2001 00:00:00    31/01/2012 15:00:00

第二行中正确的新时间戳应该是
28/01/2012 15:00:00
而不是
31/01/2012 15:00:00

您是否尝试查看转换后具有重复项的行,它们在原始数据集中是否具有重复项?你能试着把它们发布到这里吗?@Quang Hoang,不,原始数据集不包含任何重复的datetime。试试这个:
df[df.datetime.duplicated(keep=False)]
。默认情况下,
duplicated
仅标记以后的第二次出现(
keep='first'
)。@Quang-Hoang
keep=False
keep='first'
keep=False
为您提供所有重复的数据。您是否尝试查看转换后具有重复数据的行,它们在原始数据集中是否有重复数据?你能试着把它们发布到这里吗?@Quang Hoang,不,原始数据集不包含任何重复的datetime。试试这个:
df[df.datetime.duplicated(keep=False)]
。默认情况下,
duplicated
仅标记以后的第二次出现(
keep='first'
)。@Quang-Hoang
keep=False
keep='first'
keep=False
将为您提供所有重复项。