2013-05-17 186 views
4

我试图通过简单地传递日期和时间来删除Python Dataframe中的一行。从Python/Pandas中的时间索引数据框中删除行

数据帧结构如下:

Date_Time    Price1 Price2 Price3      
2012-01-01 00:00:00 63.05 41.40 68.14 
2012-01-01 01:00:00 68.20 42.44 59.64 
2012-01-01 02:00:00 61.68 43.18 49.81 

我一直在试图与df = df.drop('2012-01-01 01:00:00')

但我不断收到以下错误信息:

exceptions.ValueError: labels [2012-01-01 01:00:00] not contained in axis 

任何帮助在任删除行或只是删除值将非常感激。

:-)

回答

8

它看起来就像你有实际使用时间戳,而不是字符串:

In [11]: df1 
Out[11]: 
        Price1 Price2 Price3 
Date_Time 
2012-01-01 00:00:00 63.05 41.40 68.14 
2012-01-01 01:00:00 68.20 42.44 59.64 
2012-01-01 02:00:00 61.68 43.18 49.81 

In [12]: df1.drop(pd.Timestamp('2012-01-01 01:00:00')) 
Out[12]: 
        Price1 Price2 Price3 
Date_Time 
2012-01-01 00:00:00 63.05 41.40 68.14 
2012-01-01 02:00:00 61.68 43.18 49.81 

假定日期时间是索引,如果不使用

df1 = df.set_index('Date_Time') 
+0

这是也许有点令人惊讶,因为ix与字符串一起工作......''df1.ix ['2012-01-01 01:00:00']'。 –

+0

是的... ....需要把转换在那里...也许就此打开一个问题... – Jeff

+0

@Jeff打开[问题在这里](https://github.com/pydata/pandas/issues/3637) –

相关问题