[英]python warning: Boolean Series key will be reindexed to match DataFrame index
[英]Received 'Boolean Series key will be reindexed to match DataFrame index' warning when creating a new data frame
使用以下代碼創建新數據框是否有任何潛在的缺點,其中我指定了我想在新數據框中看到的原始數據框中的非常具體的信息。
df_workloc = (df[df['WorkLoc'] == 'Home'][df['CareerSat'] == 'Very satisfied'][df['CurrencySymbol'] == 'USD'][df['CompTotal'] >= 50000])
我使用了 2019 年 Stack Overflow 調查數據。 像這樣:
WorkLoc指定了受訪者的工作地點。
CareerSat指定受訪者的職業滿意度。
CurrencySymbol指定受訪者獲得的付款貨幣。
CompTotal指定受訪者的總薪酬是多少。
如果有人有一種更清晰、更有效的方法來實現具有精煉/特定信息的數據框,我很樂意看到它。 我想做的一件事是在同一行中指定 >= 50000 和 <=75000 的補償總計CompTotal 。 但是,當我嘗試包含第二個布爾值時出現錯誤。
提前致謝。
我認為你需要帶有 & 的鏈式條件,用於按位AND
並通過boolean indexing
過濾,也用於最后一個條件使用Series.between
:
m1 = df['WorkLoc'] == 'Home'
m2 = df['CareerSat'] == 'Very satisfied'
m3 = df['CurrencySymbol'] == 'USD'
m4 = df['CompTotal'].between(50000, 75000)
df_workloc = df[m1 & m2 & m3 & m4]
或者對於單行解決方案:
df_workloc = df[(df['WorkLoc'] == 'Home') &
(df['CareerSat'] == 'Very satisfied') &
(df['CurrencySymbol'] == 'USD') &
df['CompTotal'].between(50000, 75000)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.