【问题标题】:Groupby across multiple genres of movies in Pandas在 Pandas 中跨多种电影类型的 Groupby
【发布时间】:2020-06-17 20:45:17
【问题描述】:

我有一个包含以下列的数据框 - movieid、电影名称、流派 1、流派 2、...流派 n。

数据框中有许多电影,它们有多种相关的类型。例如:玩具总动员是动画、家庭、儿童等的一部分。

我要做的是,找出属于一种以上类型的所有电影。

如何使用 Pandas/DataFrame 进行编码?顺便说一句,我是一个完全的新手,所以请多多包涵。

谢谢, D

【问题讨论】:

  • 您可以使用df.melt(['movieid','movie name']) 将所有genre 转换为名为@9​​87654323@ 的列。
  • 如果所有流派都在同一列中,会不会发生这种情况?

标签: python pandas


【解决方案1】:

我有一个包含以下列的数据框 - movieid、电影名称、流派 1、流派 2、...流派 n。

数据框中有许多电影,它们有多种相关的类型。例如:玩具总动员是动画、家庭、儿童等的一部分。

我要做的是,找出属于一种以上类型的所有电影。

好的,所以你不需要 groupby 任何东西。我将在这里建议一些有点hacky的东西,有人可能有这个代码的更漂亮的版本。只需使用流派的列来获取数据框的一部分(我在这里假设没有任何列名称中包含不属于您所说的类型的“流派”。)

tempdf = df[[column for column in df if 'genre' in column]]

我将假设流派列编码为 0/1。如果不是,您可以很容易地将它们转换成那样。

number_of_genres = df.sum(axis=1)

现在你只想要那些 >1 的电影:

df[number_of_genres > 1]

【讨论】:

  • 这就像一个魅力......谢谢!我认为是在列轴上求和(当然还有大于 1 的条件)
  • 太棒了!很高兴我能帮助你。如果您可能需要在这里进行更复杂的操作,请随时询问。
猜你喜欢
  • 2019-02-07
  • 2018-10-06
  • 2021-03-12
  • 2021-09-27
  • 2020-03-24
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多