假設我們有一個由以下變陣列成的資料框,其中包括:
Institution (name of the university)
Country (name of the country of the institution)
Year (integer, year in which that university was scored)
World_rank (integer, position in the world rank)
Alumni_employment (integer, number of alumni placements)
我們想要過濾所有美國大學,這些大學在 2015 年排名 <= 500,并且 Alumni_employment 的值相同。
雖然前 3 個要求很容易滿足,但我在最后一個被卡住了。
這是我的嘗試:
import pandas as pd
import numpy as np
data = pd.read_csv("data/cwurData.csv")
americanuniv = data[(data.country == 'USA') & (data.year == 2015) & (data.world_rank <= 500)]
for x in data.alumni_employment:
for y in data.alumni_employment:
if x == y:
print(americanuniv['institution'])
自然,它沒有奏效。老實說,我不知道如何前進才能完成最后的挑戰..你們有什么想法嗎?
非常感謝!
uj5u.com熱心網友回復:
americanuniv = data.loc[(data["country"] == 'USA') & (data["year"] == 2015) & (data["world_rank"] <= 500)]
americanuniv.groupby(by = "Alumni_employment")["institution"]
uj5u.com熱心網友回復:
為簡單起見,讓我們使用以下資料框:
df = pd.DataFrame({'institution': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
'alumni_employment': [10, 20, 10, 30, 20, 5, 20]})
要獲得具有相同“alumni_employment”的機構,請使用 groupby。然后,過濾以消除大小為 1 的組中的那些。
g = df.groupby('alumni_employment')
final = g.filter(lambda x: len(x) > 1)
結果是:
institution alumni_employment
0 A 10
1 B 20
2 C 10
4 E 20
6 G 20
如果您希望將具有相同 'alumni_employment' 的那些列印在一起,您可以執行以下操作:
final = final.sort_values('alumni_employment')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/358217.html
