我有一个包含三列的数据框:两列定义时间段的开始和结束(一个窗口),另一列定义单个时间点的数组。我想确定窗口的起点和终点(其他两列)中是否有任何单独的点。理想的输出是每一行都是True / False。
我可以遍历数据帧的每一行,提取时间点以及start_window和end_window时间并一次确定这一行,但是我一直在寻找更快的(无循环)选项。
数据框示例
row start_window end_window times (numpy array)
0 307.110309 307.710309 [307.48857, 307.6031]
1 309.140340 311.900309 [315.23134]
...
基于上述数据框的输出为:
是
错误
答案 0 :(得分:1)
一种方法是使用getTacni() {
this.storageService.getQuestions().then(items => {
const odgovori: { id: number; answer: number }[] = [];
for (let i of items) {
odgovori.push({ id: i.id, answer: i.tacan });
}
});
}
:
pd.DataFrame.apply
输出:
df.apply(lambda x: any(x['start_window']< i< x['end_window'] for i in x['times']), 1)
答案 1 :(得分:0)
让我们来验证
s=pd.DataFrame(df.time.tolist(),index=df.index)
((df.start_window-s<0)&(df.end_window-s>0)).any(1)
Out[277]:
0 True
1 False
dtype: bool
答案 2 :(得分:0)
这是另一个有效的解决方案。
t_max = df["times"].apply(max)
t_min = df["times"].apply(min)
out = (t_max > df["start_window"]) & (t_min < df["end_window"])