使用CSV
导入pandas
文件会导致pandas
在同一天将六分钟的Timestamps
标识为一组重复项。例如:
from pandas import read_csv
#Format timestamps
def parser(x):
return datetime.datetime.strptime(x,'%Y-%m-%d %H:%M')
series = read_csv('data', header=0, index_col=0, squeeze=True, date_parser=parser)
print(series.duplicated())
返回:
<bound method Series.duplicated of t>
2013-02-01 00:00:00 3.959
2013-02-01 00:06:00 3.924
2013-02-01 00:12:00 3.892
2013-02-01 00:18:00 3.865
2013-02-01 00:24:00 3.842
...
但是,我知道序列索引已将时间值正确存储在Timestamps
内,因为:
print(series.index[0].time())
返回:
00:00:00
对于我的一生,我无法弄清楚。这是怎么回事?
答案 0 :(得分:0)
我将添加我的评论作为答案。我将您的输出用作输入文件:
2013-02-01 00:00:00, 3.959
2013-02-01 00:06:00, 3.924
2013-02-01 00:12:00, 3.892
2013-02-01 00:18:00, 3.865
2013-02-01 00:24:00, 3.842
并如下修改日期解析器:
def parser(x):
return datetime.datetime.strptime(x,'%Y-%m-%d %H:%M:%S')
重复通话的结果如下:
series.duplicated()
Out[7]:
2013-02-01 00:00:00
2013-02-01 00:06:00 False
2013-02-01 00:12:00 False
2013-02-01 00:18:00 False
2013-02-01 00:24:00 False
Name: 3.959, dtype: bool
哪个是正确的
您可以使用以下方法选择所有重复的条目:
dups = series[series.duplicated()]
以及所有不重复的条目:
not_dups = series[~series.duplicated()]