根据条件生成熊猫行的小节

时间:2018-07-12 17:00:23

标签: python pandas

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

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之后的所有后续行直到具有相同日期的行。

1 个答案:

答案 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