创建新数据框时收到 '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, also for last condition use 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)]