python - 计算一对多数据帧中的时间差

标签 python pandas pandas-groupby

我最近下载了我的英雄联盟数据。我有以下DF

df = pd.DataFrame.from_dict({'DateTime': {
    0: 156102273400,
    1: 156101627200,
    2: 156092208200,
    3: 1559897767000,
    4: 1559890046000,
    5: 1559889968000},
                      'EventType': {
    0: 'LOGOUT_USER',
    1: 'LOGIN',
    2: 'LOGOUT_USER',
    3: 'LOGIN',
    4: 'LOGIN',
    5: 'LOGIN'}})

我得到以下 df:

>>>df
Index    DateTime          EventType
0        156102273400      LOGOUT_USER
1        156101627200      LOGIN
2        156092208200      LOGOUT_USER
3        1559897767000     LOGIN
4        1559890046000     LOGIN
5        1559889968000     LOGIN

我想在遇到下一个 LOGOUT_USER 之前将一个 LOGOUT_USER 映射到最小的 LOGIN 。从那里我应该能够计算出总播放时间。


理想的输出应该是这样的:

>>>fixed_df
Index    DateTime          EventType
0        156102273400      LOGOUT_USER
1        156101627200      LOGIN
2        156092208200      LOGOUT_USER
3        1559889968000     LOGIN

最佳答案

我认为您正在寻找 groupbyidxmin

grouper = df['EventType'].ne(df['EventType'].shift()).cumsum()
df.loc[df.groupby(grouper)['DateTime'].idxmin()]  

        DateTime    EventType
0   156102273400  LOGOUT_USER
1   156101627200        LOGIN
2   156092208200  LOGOUT_USER
5  1559889968000        LOGIN

关于python - 计算一对多数据帧中的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56709272/

相关文章:

python - matplotlib 绘制与点的大小和颜色相对应的图例

python - 在这种情况下如何使用泛函?

Python Pandas Dataframe 同比比较

python-3.x - 带有日期时间轴的 Seaborn 热图

python - Pandas 、分组和计数

python - 调用 Reddit API 时出现 403 错误。

python - Numpy 和 Ndarray 的外积

python - 为什么我的重新训练模型的准确性很差?

python - 尝试获取 panda 数据框中列表中的第一项

python - Dataframe groupby - 值列表