更干净的分割DFs的方法?

2024-06-26 14:52:00 发布

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

假设您拥有以下df:

df = pd.DataFrame({"VATcheck": [True, False], "taxrate#1": [True, False]})

我想根据每个列的值区分df是否为真:

dffinalselection = dffinal.loc[~df['taxrate#1']] 
dfresult_secondlook55    = dffinal.loc[df['taxrate#1']]

dfresult_secondlook53 = dffinal.loc[~dffinal['VATcheck']]
dfresult_secondlook54   = dffinal.loc[dffinal['VATcheck']]

但是,现在我有4个dfs,我必须再次合并/加入,这在执行多个检查时会变得非常痛苦

是否有一种更干净/更快速的方法来适应多种情况

我的目标是有两个独立的数据帧:一个只有真值,另一个只有假值(基于这两个条件)

请帮忙


Tags: falsetruedataframedfloc区分pddfresult
1条回答
网友
1楼 · 发布于 2024-06-26 14:52:00
df_true = df[df['VATcheck'] & df['taxrate#1']]
df_false = df[~df['VATcheck'] & ~df['taxrate#1']]

(在这种特定情况下,不需要在每个条件周围加括号,因为它们是一元布尔运算符。对于其他运算符,如==,则需要括号,如:df[(df['VATcheck'] == True) & (df['taxrate#1'] == True)]

对于任意数量的列:

df_true = df[df.all(axis=1)]
df_false = df[~df.any(axis=1)]

有关allany,请参见熊猫文档

相关问题 更多 >