【发布时间】:2021-07-12 18:06:04
【问题描述】:
我想发布平均分高于 7 分的美国作品中出现次数最多的前 10 位演员。
我已经尝试了几种组合并且我已经在堆栈上进行了搜索,但我真的无法弄清楚
df['actors'] = pd.Series(df['cast'].str.split(',', expand=True).stack().reset_index(drop=True))
top_actors = df[df['country'] == 'United States']
top_actors = df[df.actors != 'No Actors'].set_index('averageRating').actors.str.split(', ', expand=True).stack().reset_index(level=1, drop=True)
plt.figure(figsize=(13,7))
plt.title('Top 10 des acteurs américain')
sns.countplot(y = top_actors, order=top_actors.value_counts().index[:10], palette='Blues')
plt.show()
【问题讨论】:
-
您是否尝试过让列表理解方法适应您的问题?
lang-python top_actors_above_7_rating = [actor for actor in complete_list if actor.rating > 7.0] -
不...我必须承认我是初学者
-
您有什么想法,我该如何解决我的问题?
-
如果您可以从表格中读取一行并访问其内容 - 那么您可以使用上述方法。问题是您如何准确地阅读这些行以及它们是如何存储的。如果它们被存储为对象 - 您将需要访问适当的属性,例如
object.attribute > 7.0。如果它们被存储为列表元素 - 您将需要list[element_number] > 7.0。如果像 '6.4' 这样的值被存储为字符串而不是浮点数,您可能需要转换为浮点数。 -
这看起来与您的问题有关:stackoverflow.com/questions/11350770/…
标签: python pandas pandas-groupby seaborn