所以可以說,我有以下資料框。
data = pd.DataFrame({'Name': ['RACHEL', 'MONICA', 'PHOEBE', 'ROSS', 'CHANDLER', 'JOEY', 'RACHEL', 'RACHEL'],
'Age': [30, 35, 37, 33, 34, 30, 30, 15],
'Salary': [100000, 93000, 88000, 120000, 94000, 95000, 100000, 10],
'Job': ['DESIGNER', 'CHEF', 'MASUS', 'PALENTOLOGY',
'IT', 'ARTIST', 'DESIGNER', 'CHEF']})
這使:
Name Age Salary Job
RACHEL 30 100000 DESIGNER
MONICA 35 93000 CHEF
PHOEBE 37 88000 MASUS
ROSS 33 120000 PALENTOLOGY
CHANDLER 34 94000 IT
JOEY 30 95000 ARTIST
RACHEL 30 100000 DESIGNER
RACHEL 15 10 CHEF
我想做的很簡單,我想過濾(獲取行)并獲取 Name != 'RACHEL'和 Job != 'CHEF'; 的行。
預期結果集:
Name Age Salary Job
RACHEL 30 100000 DESIGNER
MONICA 35 93000 CHEF
PHOEBE 37 88000 MASUS
ROSS 33 120000 PALENTOLOGY
CHANDLER 34 94000 IT
JOEY 30 95000 ARTIST
RACHEL 30 100000 DESIGNER
請注意,最后一個條目已被洗掉。
到目前為止我嘗試過的是:
data = data.loc[ (data.Name != 'RACHEL') & (data.Job != 'CHEF') ]
這將過濾其他行,其中 Name = "RACHEL" OR Job = "CHEF"。我只想過濾 Name = 'RACHEL' 的最后一行,并在同一行中過濾 Job = "CHEF"。
任何幫助表示贊賞。謝謝。
uj5u.com熱心網友回復:
用這個:
data = data.loc[ ~((data.Name == 'RACHEL') & (data.Job == 'CHEF')) ]
您想洗掉所有同時具有 Name = RACHEL和的行Job = CHEF。因此,只需撰寫該條件并將其反轉即可將其過濾掉。
uj5u.com熱心網友回復:
rachefs = df[~(df["Name"] == "RACHEL") | ~(df["Job"] == "CHEF")]
| 通常意味著 OR 變成 AND 因為我們使用否定。
https://en.wikipedia.org/wiki/De_Morgan's_laws#
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/397229.html
上一篇:做TCP警告意味著資料包被忽略,"Wireshark(Warning/Malformed):Shortsegment.Segment/fragmentdoesnotcontainafullT
