为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas 嵌套循环,一行与特定值匹配

Pandas 嵌套循环,一行与特定值匹配

慕雪6442864 2021-10-12 15:18:15
给定与某些特定值匹配的行,迭代数据帧其余部分的最快方法是什么?例如,假设我有一个包含“日期”、“名称”和“电影”的数据框。可能有很多用户和电影。我想要所有看过同一个电影的约翰和艾丽西亚以前看过的电影。输入数据帧可以是:                 date       name              movie0 2018-01-16 10:33:59     Alicia            Titanic1 2018-01-17 08:49:13   Chandler             Avatar2 2018-01-18 09:29:09      Luigi              Glass3 2018-01-19 09:45:27     Alicia           Die Hard4 2018-01-20 10:08:05    Bouchra       Pulp Fiction5 2018-01-26 10:21:47     Bariza              Glass6 2018-01-27 10:15:32      Peggy         Bumbleblee7 2018-01-20 10:08:05       John            Titanic8 2018-01-26 10:21:47     Bariza              Glass9 2018-01-27 10:15:32       John            Titanic结果应该是:                 date       name              movie0 2018-01-16 10:33:59     Alicia            Titanic7 2018-01-20 10:08:05       John            Titanic9 2018-01-27 10:15:32       John            Titanic目前我正在做以下事情:alicias = df[df['Name'] == 'Alicia']df_res = pd.DataFrame(columns=df.columns)for i in alicias.index:    df_res = df_res.append(alicias.loc[i], sort=False)    df_johns = df[(df['Date'] > alicias['Date'][i])                 &(df['Name'] == 'John')                 &(df['Movie'] == alicias['Movie'][i)]    df_res = df_res.append(df_johns, sort=False)它有效,但这非常慢。我也可以使用更快的 groupby,但我希望结果保留初始行(示例中带有 'Alicia' 的行),我找不到使用 groupby 执行此操作的方法。有什么帮助吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号