python – 如何从Pandas中的数据框中获取条件满足的前一行
发布时间:2020-12-20 11:50:57 所属栏目:Python 来源:网络整理
导读:例如,我有一个数据框,我想从上一行获取Value为1的时间戳 TIME VALUE0 23:01 01 23:02 02 23:03 13 23:04 04 23:05 05 23:06 16 23:07 07 23:08 08 23:09 09 23:10 010 23:11 111 23:12 012 23:13 013 23:14 014 23:15 015 23:16 1 我想得到以下作为输出 PREV
例如,我有一个数据框,我想从上一行获取Value为1的时间戳
TIME VALUE 0 23:01 0 1 23:02 0 2 23:03 1 3 23:04 0 4 23:05 0 5 23:06 1 6 23:07 0 7 23:08 0 8 23:09 0 9 23:10 0 10 23:11 1 11 23:12 0 12 23:13 0 13 23:14 0 14 23:15 0 15 23:16 1 我想得到以下作为输出 PREV_TIME 0 23:02 1 23:05 2 23:10 3 23:15 我不知道在下面将shift(1)放在哪里 PREV_TIME = df['Time'][(df.Value == 1)] 解决方法
在“VALUE”列上调用shift并将其作为条件传递:
In [7]: df.loc[df['VALUE'].shift(-1)==1,'TIME'] Out[7]: 1 23:02 4 23:05 9 23:10 14 23:15 Name: TIME,dtype: object 要在满足条件的行旁边添加新列“PREV Time”: In [21]: df['Prev_Time'] = df.loc[df['VALUE'].shift(-1)==1,'TIME'] df['Prev_Time'] = df['Prev_Time'].shift() df Out[21]: TIME VALUE Prev_Time 0 23:01 0 NaN 1 23:02 0 NaN 2 23:03 1 23:02 3 23:04 0 NaN 4 23:05 0 NaN 5 23:06 1 23:05 6 23:07 0 NaN 7 23:08 0 NaN 8 23:09 0 NaN 9 23:10 0 NaN 10 23:11 1 23:10 11 23:12 0 NaN 12 23:13 0 NaN 13 23:14 0 NaN 14 23:15 0 NaN 15 23:16 1 23:15 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |