如何提取数据集中一分钟的每个数据点?

时间:2019-01-04 11:39:31

标签: python pandas datetime

我有一个数据集,其中包含一个月的每分钟数据。那么,如何在特定分钟内获取每个数据点?

我的熊猫数据框看起来像这样:

  
      
  1. 2018-06-01 08:00:00
  2.   
  3. 2018-06-01 08:01:00
  4.   
  5. 2018-06-01 08:02:00
  6.   
  7. ............
  8.   
  9. ............
  10.   
  11. ............
  12.   
  13. 2018-06-30 23:57:00
  14.   
  15. 2018-06-30 23:58:00
  16.   
  17. 2018-06-30 23:59:00
  18.   

示例:假设我要获取 08:03:00 的每个数据点。因此,整个月中将有 30 个该值的实例。那么,如何获取该分钟的所有值?

如果有人从事过这样的工作,那将真的很有帮助。

编辑:我的数据框是这样的

Dataframe description

2 个答案:

答案 0 :(得分:4)

创建DatetimeIndex,然后使用DataFrame.at_time

df = pd.DataFrame({'Ambient': [1,5,6]},
                   index= ['2018-06-01 08:00:00','2018-06-01 08:01:00','2018-06-01 08:01:00'])
print (df)
                     Ambient
2018-06-01 08:00:00        1
2018-06-01 08:01:00        5
2018-06-01 08:01:00        6

#if necessary
df.index = pd.to_datetime(df.index)

df1 = df.at_time('08:01:00')
print (df1)
                     Ambient
2018-06-01 08:01:00        5
2018-06-01 08:01:00        6

答案 1 :(得分:2)

这是一种解决方案:

import pandas as pd
df = pd.DataFrame({'datetime':['2018-06-01 08:00:00', '2018-06-01 08:01:00', '2018-06-01 08:01:00']})

# Convert datetime column into `pandas datetime`
df['datetime'] = pd.to_datetime(df['datetime'])

# Create a new column with only time
df['tme'] = df['datetime'].dt.time

# This is a time for which you have to fetch the data
t = pd.to_datetime('08:01:00').time()

print(df[df['tme']==t])

输出:

    datetime             tme
1   2018-06-01 08:01:00  08:01:00
2   2018-06-01 08:01:00  08:01:00