Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/Pandas:希望一天中的不同时间在数据帧索引中按唯一的日期时间进行转换_Python_Pandas_Datetime_Dataframe_Indexing - Fatal编程技术网

Python/Pandas:希望一天中的不同时间在数据帧索引中按唯一的日期时间进行转换

Python/Pandas:希望一天中的不同时间在数据帧索引中按唯一的日期时间进行转换,python,pandas,datetime,dataframe,indexing,Python,Pandas,Datetime,Dataframe,Indexing,我有一个csv文件pruned_results.txt,看起来像这样: 2018-08-01 08:41:08, Wait for OK to Measure 2018-08-01 09:02:26, Wait for OK to Measure 2018-08-01 10:49:06, Wait for OK to Measure 2018-08-01 14:19:16, Wait for OK to Measure 2018-08-01 21:46:23, Wait for OK to Me

我有一个csv文件
pruned_results.txt
,看起来像这样:

2018-08-01 08:41:08, Wait for OK to Measure
2018-08-01 09:02:26, Wait for OK to Measure
2018-08-01 10:49:06, Wait for OK to Measure
2018-08-01 14:19:16, Wait for OK to Measure
2018-08-01 21:46:23, Wait for OK to Measure
2018-08-02 01:11:06, Wait for OK to Measure
2018-08-02 02:47:11, Wait for OK to Measure
2018-08-02 04:05:41, Wait for OK to Measure
我要导入的第一列作为数据帧中的日期时间索引。第二列是数据,我称之为
State
。我有以下代码:

import pandas as pd

df = pd.read_csv("pruned_result.txt", header=None, index_col=0)
df.index = pd.to_datetime(df.index)
df.columns = ['State']
df.index.names = ['Timestamp']
到目前为止,一切顺利。事实证明,我实际上有一行或两行具有相同的时间戳。这些对我来说都不重要。因此,我想在转到
State
列之前删除重复项。我遇到的问题是,显然,如果行具有相同的日期,则它们被认为是重复的。但我希望,只有当它们一直匹配到一天中的同一秒时,它们才被视为复制品。就是代码

df.drop_duplicates(keep='first', inplace=True)
删除的行太多(在这个命令之后,我只剩下六行!)。如何更改此行为,以便只将重复项拖放到第二个


谢谢你的时间

您的问题是,
drop\u duplicates
基于列进行删除,在本例中,这只是
'State'
。您希望保留非重复索引,因此应改为使用
pandas.Index.duplicated
来屏蔽原始
DataFrame

df[~df.index.duplicated(keep='first')]

~
做什么?太好了!工作起来很有魅力。多谢!它否定/翻转布尔值
pd.Index.duplicated
如果索引重复,则返回
True
;如果索引唯一,则返回
False
。但是我们想要相反的结果,所以
~
实现了这一点,将
True
更改为
False
,将
False
更改为
True