首页 > 解决方案 > 根据条件生成熊猫行的小节

问题描述

我有一个像这样的熊猫数据框-

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:00Time现在我想生成一个新的 pandas 数据框,其中包含 13:15:00 之后的所有后续行,直到具有相同日期的行。

标签: pythonpandas

解决方案


你需要:

我冒昧地添加了一个带有新日期的虚拟数据。

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指定的 in之后的所有行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      

推荐阅读