我想保留“1分钟”。数据的分辨率,并返回df的一个子集,其中日期与索引器
中的三个中的一个匹配android:scaleType="fitXY"
以下不起作用:
import pandas as pd
import numpy as np
df=pd.DataFrame(index=pd.date_range("2013-10-08 00:00:00","2015-10-08 00:00:00", freq="1min",tz='UTC'))
df['data']=np.random.random_integers(0,1,len(df))
indexer=["2013-12-24","2014-01-16","2015-02-19"]
答案 0 :(得分:0)
您必须按功能get_loc获取整数位置,然后您可以按df.ix选择数据。
但你不仅需要午夜,还需要一天1440分钟。
我再次使用列表理解功能range,范围从00:00:00+00:00
到23:59:00+00:00
午夜。最后flat列表已创建,因为范围返回了列表列表。
print df.head()
# data
#2013-10-08 00:00:00+00:00 0
#2013-10-08 00:01:00+00:00 0
#2013-10-08 00:02:00+00:00 1
#2013-10-08 00:03:00+00:00 0
#2013-10-08 00:04:00+00:00 0
#list comprehension - get loc of dates
idx = [df.index.get_loc(pd.to_datetime(i)) for i in indexer]
print idx
#[110880, 144000, 718560]
#add 1439 + 1 minutes, because range is 0 indexing
idx = [range(i, i+1440) for i in idx]
#flatten list
idx = [y for x in idx for y in x]
#select df by integer indexes
df = df.ix[idx]
print df.head()
# data
#2013-12-24 00:00:00+00:00 1
#2013-12-24 00:01:00+00:00 0
#2013-12-24 00:02:00+00:00 0
#2013-12-24 00:03:00+00:00 0
#2013-12-24 00:04:00+00:00 1
print df.tail()
# data
#2015-02-19 23:55:00+00:00 1
#2015-02-19 23:56:00+00:00 0
#2015-02-19 23:57:00+00:00 0
#2015-02-19 23:58:00+00:00 0
#2015-02-19 23:59:00+00:00 0