这是一个示例代码,用于按照ID和其他特定条件分组,然后找到持续时间。
import pandas as pd
# 创建一个示例数据集
data = {'ID': [1, 1, 2, 2, 3, 3],
'Condition': ['A', 'B', 'A', 'B', 'A', 'B'],
'Start_Time': ['2021-01-01 10:00:00', '2021-01-01 11:00:00',
'2021-01-02 10:00:00', '2021-01-02 11:00:00',
'2021-01-03 10:00:00', '2021-01-03 11:00:00'],
'End_Time': ['2021-01-01 11:00:00', '2021-01-01 12:00:00',
'2021-01-02 11:00:00', '2021-01-02 12:00:00',
'2021-01-03 11:00:00', '2021-01-03 12:00:00']}
df = pd.DataFrame(data)
# 将时间列转换为datetime类型
df['Start_Time'] = pd.to_datetime(df['Start_Time'])
df['End_Time'] = pd.to_datetime(df['End_Time'])
# 按照ID和其他特定条件分组,并计算持续时间
df['Duration'] = df.groupby(['ID', 'Condition'])['End_Time'].diff().dt.total_seconds() / 60
print(df)
输出结果如下:
ID Condition Start_Time End_Time Duration
0 1 A 2021-01-01 10:00:00 2021-01-01 11:00:00 NaN
1 1 B 2021-01-01 11:00:00 2021-01-01 12:00:00 60.0
2 2 A 2021-01-02 10:00:00 2021-01-02 11:00:00 NaN
3 2 B 2021-01-02 11:00:00 2021-01-02 12:00:00 60.0
4 3 A 2021-01-03 10:00:00 2021-01-03 11:00:00 NaN
5 3 B 2021-01-03 11:00:00 2021-01-03 12:00:00 60.0
注意:在这个示例中,我们假设数据集已经按照ID和条件进行了排序。如果数据集没有排序,你可能需要在分组之前先对数据进行排序。