2017-05-03 99 views
2

我创建了熊猫数据框。现在我试图从这个熊猫数据框中提取一定的时间范围来创建一个新的数据框并执行一些操作。我的数据看起来像这样。 。从熊猫数据帧中提取值以创建新的数据帧

timestamp   temp  presure 
1456411800000000 12.90 12 
1456412400000000 13.32 45 
1456413000000000 9.32  32 
1456413600000000 10.3  13 
1456414200000000 12.3  55 
1456414800000000 12.5  76 
1456415400000000 5.4  43 
1456416000000000 2.4  42 
1456416600000000 7.66  22 
1456417200000000 12.3  66 
. 
. 
. 
. 
. 
1456550400000000 32.4 43 

这是一个数据帧。现在我试图提取两个时间戳(1456411800000000和1456417200000000)之间的数据并创建新的数据帧。 我在尝试但无法获得理想的结果。我收到一些错误。

TypeError: Index must be DatetimeIndex

里面我是用提取该数据帧的代码行是

test_df = df.between_time('1456411800000000','1456417200000000') 

我尝试这样的事情,将它们转换成datetime对象

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='us') 

而且它是成功的,但我试图从已经存在的数据帧中提取时间范围。 有人可以指导我从数据框中提取值并从中创建新的数据框。我是熊猫新手。我会很感激。

df.head的输出(5)是

timestamp   temp  pressure\ 
0 1456411800000000  12.90 12      
1 1456412400000000  13.32 45        
2 1456413000000000  9.32  32        
3 1456413600000000  10.3  13        
4 1456414200000000  12.3  55      

回答

0

尝试此如果timestampobject(字符串)D型细胞:

test_df = df.query("'1456411800000000' <= timestamp <= '1456417200000000'") 

test_df = df.loc[df['timestamp'].between('1456411800000000', '1456417200000000')] 
+0

我得到了第一个'ValueError错误:无法将字符串转换为时间戳'。而第二个错误为.................... TypeError:无效类型比较。 。 – khan

+0

我从MySQL数据库中获取数据,并在MySQL中存储它在纪元时间微秒。 – khan

+0

@khan,确保'timestamp'列是整型dtype第一个 – MaxU