【发布时间】:2016-01-06 09:14:46
【问题描述】:
我有两个数据框,第一个 df 像这样
date_time value member
2013-10-09 09:00:00 664639 Jerome
2013-10-09 09:05:00 197290 Hence
2013-10-09 09:10:00 470186 Ann
2013-10-09 09:15:00 181314 Mikka
2013-10-09 09:20:00 969427 Cristy
2013-10-09 09:25:00 261473 James
2013-10-09 09:30:00 003698 Oliver
和第二个数据框bounds 我有这样的界限:
date_start date_end
2013-10-09 09:19:00 2013-10-09 09:25:00
2013-10-09 09:25:00 2013-10-09 09:40:00
所以我需要从第一个表中选择 date_start 和 date_end 之间的行,并将每个选择放入数组中。 我尝试了以下代码:
def create_interval():
intervals=[]
for i in range(1,len(bounds)):
for j in range(1, len(df)):
mask[i] = df[(df['date'][j] > bounds.date_start[i]) & (df['date'][j] < bounds.date_end[i])]
df_interval[i]=df.loc[mask[i]]
intervals.append(df_interval.values)
return intervals
我得到这个错误:
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3824)()
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3704)()
pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12280)()
pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12231)()
KeyError: False
我认为索引有问题,但我不确定。可能在遍历行时存在问题,或者选择 date_time 的间隔,或者将选择值存储在数组中
我是 python 的初学者,所以欢迎任何帮助!
【问题讨论】:
标签: python arrays loops pandas dataframe