在Python

时间:2016-03-02 21:07:20

标签: python date pandas time

我有一个如下所示的数据集:

refrigerator.csv
08/02/2012 00:00:02;136;134
08/02/2012 00:00:03;134;134
08/02/2012 00:00:05;136;134
08/02/2012 00:00:06;136;134
08/02/2012 00:00:08;134;134
08/02/2012 00:00:09;134;134
...

我想将2012年2月2日的日期更改为01/01/2010。我试着做以下事情:

import pandas as pd
refr=pd.read_csv('C:/refrigerator.csv', names=['ts', 'P1', 'P2'], 
                  sep=';', parse_dates=[0], index_col=0, 
                  date_parser=lambda x: pd.Timestamp('2010-01-01 %s' %x)) 

但是我得到了一个ValueError。总之,我想保持时间不变,并改变日期。原因是因为我有多个数据集,每个数据集代表一个设备的每日功率配置文件。我不关心日期,只关心时间。我想用相同的日期阅读所有这些内容以便同步它们。

1 个答案:

答案 0 :(得分:2)

您可以先尝试转换为replace,然后转换为date_parser中的import pandas as pd import io temp=u""" 08/02/2012 00:00:02;136;134 08/02/2012 00:00:03;134;134 08/02/2012 00:00:05;136;134 08/02/2012 00:00:06;136;134 08/02/2012 00:00:08;134;134 08/02/2012 00:00:09;134;134""" #after testing replace io.StringIO(temp) to filename df =pd.read_csv(io.StringIO(temp), names=['ts', 'P1', 'P2'], sep=';', parse_dates=[0], index_col=0, date_parser=lambda x: pd.to_datetime(x).replace(year=2010, month=1,day=1)) print df P1 P2 ts 2010-01-01 00:00:02 136 134 2010-01-01 00:00:03 134 134 2010-01-01 00:00:05 136 134 2010-01-01 00:00:06 136 134 2010-01-01 00:00:08 134 134 2010-01-01 00:00:09 134 134

{{1}}