【问题标题】:Filtering out a dataframe [duplicate]过滤出数据框[重复]
【发布时间】:2020-06-21 23:58:33
【问题描述】:

我有两个数据框,一个是:

       movieId  rating
9414    27914   5.0
9640    31945   5.0
15755   83161   5.0
16444   86975   5.0
17745   92783   5.0
17972   93991   5.0
18206   95494   5.0
18472   96799   5.0
18999   99243   5.0
19994   103875  5.0

另一个看起来像

movieId tagId   relevance   
1       1   0.02875
1       2   0.02375
1       3   0.06250
1       4   0.07575
1       5   0.14075
... ... ...
206499  1124    0.11000
206499  1125    0.04850
206499  1126    0.01325
206499  1127    0.14025
206499  1128    0.03350

我正在尝试过滤第二个数据帧,使其仅包含第一个数据帧中具有相应电影 ID 的值。我试过使用代码:

keys = list(df1.movieId)
mask = df2.index.isin(keys)
df2[mask]

我已经阅读了多索引,我认为这就是我的第二个 df 可以考虑的内容,但我仍然很难将其过滤掉这些新信息。任何帮助或指导表示赞赏。

【问题讨论】:

  • 请添加您想要的输出。见How to create a Minimal, Reproducible Example
  • 嗨,我想要的输出将是 df2,其中包含不在 df1 中的 movieIds 的所有行都已删除。所以它会有: df2 = { 'movieId' : [27914, 27914, 27914... 31945, 31945, 31945, ..... 103875, 103875,...], 'tagId' : [1, 2, 3, ... 1, 2, 3, ... 1, 2...], 'relevance' : [float64, float64, float 64...] } 希望有帮助!

标签: python pandas dataframe multi-index


【解决方案1】:

你可以检查

df2=df2.loc[df2.movieId.isin(df1.movieId)]

【讨论】:

  • 我已经尝试过这样做一次,由于某种原因,这会返回一个包含所有空值的数据帧。你知道为什么会这样吗?
猜你喜欢
  • 2018-10-22
  • 2021-10-31
  • 2017-04-22
  • 2021-05-02
  • 2015-12-02
  • 2012-03-10
  • 1970-01-01
相关资源
最近更新 更多