![](/img/trans.png)
[英]Python Pandas: Find closest match for multiple columns between two dataframes
[英]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.