2016-03-02 85 views
1

我有一个数据集是这样的:更改默认的日期上的Python

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 
... 

我想改变,始终是08月02日至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。总之,我想保持现状,并改变日期。原因是因为我有多个数据集,每个数据集都代表设备的每日功率曲线。我不在乎日期,只有时间。我想用相同的日期阅读所有这些文件以便同步它们。

回答

2

你可以尝试先转换为to_datetime,然后在date_parserreplace

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 
+0

非常感谢!它非常完美! – user3423639