在我的代码中,我试图找出电影数据集中每种类型的电影数量。发现这是一个例子,但我无法找到这个示例代码的解释。
$(document).ready(function() {
$("select").on("change", function() {
Yourfunction($(this).val())
});
});
function Yourfunction(value){
console.log("The value from the select " + value)
}
答案 0 :(得分:0)
在不确切知道movies_df
数据集中的内容的情况下提供所有细节有点困难。但是......我最好的猜测是它是一系列存储在子列表中的电影类型。对于这个例子,我们可以认为它就像一个列表列表:
[[romance, horror, thriller],
[action, adventure, mystery],
[horror, thriller, action],
[romance, adventure, mystery]]
以下行从Counter
库导入collections
类。 Counter
类接受一系列项目并计算每个项目的显示数量。它将该数据存储在Counter
对象中,该对象非常类似于具有一些额外功能的字典(例如能够向您显示哪些项目最常见)。
from collections import Counter
接下来的这一部分将深入到类型数组中的每个子列表中,并从每个子列表中提取每个项目并将它们转储到单个巨型列表中。这是使用称为列表推导的语法完成的。这种从嵌套子列表中提取数据到单个列表的技术称为展平。
flattened_genres = [item for sublist in movies_df.genres_arr for item in sublist]
编写上述内容的另一种方法是使用嵌套for循环并将数据附加到主列表:
flattened_genres = []
for sublist in movies_df.genres_arr:
for item in sublist:
flattened_genres.append(item)
列表推导通常比嵌套for循环和附加函数调用具有更好的性能,但对于初学者来说往往有点难以理解,直到他们已经看过几次。
扁平化的结果如下所示:
[romance, horror, thriller, action, adventure, mystery, horror, thriller, action, romance, adventure, mystery]
任何序列都可以输入Counter
来获取计数。使用这个简单的列表,我们可以统计所有的'以及所有的&#b;等等。
c = Counter(['a', 'b', 'c', 'b', 'a'])
这产生了一个Counter
对象,看起来像这样,并显示它计算了两个'一个和两个'等等:
>>> c
Counter({'a': 2, 'b': 2, 'c': 1})
Counter
个对象与dict
有点不同,所以如果你真的需要一个字典,你可以通过{{1}运行它来将Counter
转换为字典。 } factory函数进行转换。在这种情况下,我们将dict
flattened_genres
作为参数提供给list
工厂函数中的Counter
类。
dict
最后,我们打印新词典。 Python {2}中使用了此genre_dict = dict(Counter(flattened_genres))
语句。提供了Python版本3 print
函数的完整性:
print()