我有一个数据集,其中包含一个月的每分钟数据。那么,如何在特定分钟内获取每个数据点?
我的熊猫数据框看起来像这样:
- 2018-06-01 08:00:00
- 2018-06-01 08:01:00
- 2018-06-01 08:02:00
- ............
- ............
- ............
- 2018-06-30 23:57:00
- 2018-06-30 23:58:00
- 2018-06-30 23:59:00
示例:假设我要获取 08:03:00 的每个数据点。因此,整个月中将有 30 个该值的实例。那么,如何获取该分钟的所有值?
如果有人从事过这样的工作,那将真的很有帮助。
编辑:我的数据框是这样的
答案 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