簡體   English   中英

Python:找到多列之間的前10名

[英]Python : Find the Top 10 between multiple columns

我想發布平均得分在 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()

這可能會有所幫助。

    df = pd.read_csv("filename.csv")
    df_ = df.copy()
    for i,r in df_.iterrows():
      if (r['averageRating'] < 7):
        df_.drop(i,inplace=True)

在上述代碼中,我們正在遍歷行並檢查“averageRating”是否小於 7,如果該條件為真,那么我們將刪除整行。

有人幫助我,所以我們可以使用 Pivot 表:

us_actors = df[df['country'] == 'United States']

rate_over_7 = us_actors[us_actors['averageRating'] >7]

actors = pd.Series(df['cast'].str.split(',', expand=True).stack().reset_index(drop=True))

table = pd.pivot_table(rate_over_7, values=['averageRating'], index=actors, aggfunc= np.mean)

top_10 = table.iloc[:10]
top_10_sort = top_10.sort_values(by=['averageRating'], ascending=False)

sns.barplot(data=top_10_sort, x="averageRating", y=top_10_sort.index)```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM