python - 如何匹配该值并根据其他列字符串为它们分配一个新列

数据框:

电影ID movieCater 评分 1 Action , 喜剧, 冒险 4 2 Action , 犯罪 3 3 犯罪 2 表>

我想要的:

电影ID movieCater 行动 喜剧 冒险 犯罪 1 Action , 喜剧, 冒险 4 4 4 0 2 Action , 犯罪 3 0 0 3 3 犯罪 0 0 0 2 表>

最佳答案

您也可以get_dummies对于列 movieCater 并乘以评分:

out = df.join(df['movieCater'].str.get_dummies(",").mul(df['rating'],axis=0))

print(out)

   MovieID               movieCater  rating  Action  Adventure  Comedy  Crime
0        1  Action,Comedy,Adventure       4       4          4       4      0
1        2             Action,Crime       3       3          0       0      3
2        3                    Crime       2       0          0       0      2

为了匹配预期的输出,在加入之前删除评级列:

out = (df.drop("rating",1).join(
      df['movieCater'].str.get_dummies(",").mul(df['rating'],axis=0))

如果系列非常大,您还可以考虑使用 sep=","拆分字符串,然后使用此解决方案:https://stackoverflow.com/a/51420716/9840637得到假人。最后乘以评级列。

https://stackoverflow.com/questions/67645905/

相关文章:

angular - 如何使用函数设置禁用按钮属性?

c++ - 这两种不是同一种类型吗?

r - 在 R 中分割字符串以获得多个符号

powershell - 如何最好地加快 powershell 处理时间(比较对象)

c++ - std::make_unique> 中的完美转发不是很完美

c# - 将任何对象数组格式化为字符串

rust - 什么是 Rust 中的后缀注释?

c++ - C++20 范围是否具有过滤器或 any_of 的值(非谓词)版本?

java - 整数和字符串比较在优化上有什么区别吗?

c++ - 你能反转初始化列表中参数扩展的顺序吗?