创建新数据帧时收到“布尔系列键将重新索引以匹配数据帧索引”警告

2024-09-28 13:13:19 发布

您现在位置:Python中文网/ 问答频道 /正文

使用下面的代码创建新的数据帧是否有任何潜在的缺点,其中我从我希望在新数据帧中看到的原始数据帧中指定了非常具体的信息

df_workloc = (df[df['WorkLoc'] == 'Home'][df['CareerSat'] == 'Very satisfied'][df['CurrencySymbol'] == 'USD'][df['CompTotal'] >= 50000])

我使用了2019年堆栈溢出调查数据。因此:

WorkLoc指定受访者的工作地点

CareerSat指定受访者的职业满意度

CurrencySymbol指定受访者以何种货币付款

CompTotal指定受访者的总薪酬

如果有人有一种更干净、更有效的方法来实现数据框架,其中包含精炼的/特定的信息,我很乐意看到。我想做的一件事是指定>;的薪酬总额CompTotal50000和<=75000人在同一条线上。但是,当我尝试包含第二个布尔值时,我得到了一个错误

提前谢谢


Tags: 数据代码信息dfhome原始数据very缺点
1条回答
网友
1楼 · 发布于 2024-09-28 13:13:19

我认为您需要带&;的链条件;对于按位AND和按^{}过滤,同样对于最后一个条件,使用^{}

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)]

相关问题 更多 >

    热门问题