更改默认的日期上的Python
问题描述:
我有一个数据集是这样的:更改默认的日期上的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。总之,我想保持现状,并改变日期。原因是因为我有多个数据集,每个数据集都代表设备的每日功率曲线。我不在乎日期,只有时间。我想用相同的日期阅读所有这些文件以便同步它们。
答
你可以尝试先转换为to_datetime
,然后在date_parser
replace
:
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
非常感谢!它非常完美! – user3423639