我有一个像这样的熊猫数据框-
identity Line Epoch Day Seconds Date Time OffWrist_Actiware
111_& 1 1590 1 0 10/27/2013 13:15:00 0
111_& 2 1591 1 30 10/27/2013 13:15:30 0
111_& 3 1592 1 60 10/27/2013 13:16:00 0
111_& 4 1593 1 90 10/27/2013 13:16:30 0
111_& 5 1594 1 120 10/27/2013 13:17:00 0
111_& 6 1595 1 150 10/27/2013 13:17:30 0
111_& 7 1596 1 180 10/27/2013 13:18:00 0
111_& 8 1597 1 210 10/27/2013 13:18:30 0
111_& 9 1598 1 240 10/27/2013 13:19:00 0
现在根据某些条件,我在13:15:00
列中找到了值为Time
的行。现在我想生成一个新的pandas数据帧,该数据帧具有13:15:00之后的所有后续行直到具有相同日期的行。
答案 0 :(得分:1)
您需要:
我可以随意添加带有新日期的虚拟数据。
df
:
identity Line Epoch Day Seconds Date Time OffWrist_Actiware
0 111_& 1 1590 1 0 10/27/2013 13:15:00 0
1 111_& 2 1591 1 30 10/27/2013 13:15:30 0
2 111_& 3 1592 1 60 10/27/2013 13:16:00 0
3 111_& 4 1593 1 90 10/27/2013 13:16:30 0
4 111_& 5 1594 1 120 10/27/2013 13:17:00 0
5 111_& 6 1595 1 150 10/27/2013 13:17:30 0
6 111_& 7 1596 1 180 10/27/2013 13:18:00 0
7 111_& 8 1597 1 210 10/27/2013 13:18:30 0
8 111_& 9 1598 1 240 10/27/2013 13:19:00 0
9 dummy 10 1599 2 300 10/28/2013 13:20:00
然后代码查找条件日期并过滤Time
中指定的row
之后的所有行。
df['Time'] = pd.to_timedelta(df['Time'])
df['Date'] = pd.to_datetime(df['Date'])
row = df.loc[df['Time']=='13:15:00']
df.loc[(df['Date'] == row['Date'].values[0]) & (df['Time']> row['Time'].values[0])]
输出:
identity Line Epoch Day Seconds Date Time OffWrist_Actiware
0 111_& 1 1590 1 0 10/27/2013 13:15:00 0
1 111_& 2 1591 1 30 10/27/2013 13:15:30 0
2 111_& 3 1592 1 60 10/27/2013 13:16:00 0
3 111_& 4 1593 1 90 10/27/2013 13:16:30 0
4 111_& 5 1594 1 120 10/27/2013 13:17:00 0
5 111_& 6 1595 1 150 10/27/2013 13:17:30 0
6 111_& 7 1596 1 180 10/27/2013 13:18:00 0
7 111_& 8 1597 1 210 10/27/2013 13:18:30 0
8 111_& 9 1598 1 240 10/27/2013 13:19:00