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