-1

在此处输入图像描述

图片是我的数据框的样子。我有用户名、电影名和时间列。我只想提取某些电影第一天的行。例如,如果电影 a 在时间列中的第一个日期是 2018 年 6 月 27 日,我想要该日期中的所有行,如果电影 b 在时间列中的第一个日期是 2018 年 6 月 12 日,我只想要那些行。我将如何使用熊猫来做到这一点?

4

1 回答 1

1

我假设时间列是日期时间类型。如果没有,请转换此列调用pd.to_datetime

然后运行:

df.groupby('movie_name').apply(lambda grp:
    grp[grp.time.dt.date == grp.time.min().date()])

Groupby将源 DataFrame 分组到有关特定电影的 grop 中。

然后grp.time.min().date()计算当前组的最小(第一个)日期。

最后,整个 lamda 函数只返回该日期的行(也来自当前组)。

其他组的行(电影)也是如此。

于 2020-01-05T10:34:22.583 回答