我正试图找到一个非常好的,全面的回答上述问题。
让我们使用以下数据帧:
df = pd.DataFrame(np.random.randn(4,4), columns=['A', 'B', 'C', 'D'])
df['Category'] = pd.Series(['Cat1', 'Cat2', 'Cat1', 'Cat2'])
df:
A B C D Category
0 0.057456 0.462712 -1.245539 0.095947 Cat1
1 0.741688 0.353600 1.130754 -1.692440 Cat2
2 0.638623 -0.109566 0.118509 -0.692661 Cat1
3 -0.905806 0.284818 -0.094696 -1.325617 Cat2
我理解使用df的基本术语。A
或df['A']
选择列A
,df[['A','B']
选择列A
和B
。
如果我想传递布尔条件,我可以做类似df[df这样的事情。一个
但有一件事我没有看到,那就是我如何使用上面使用的两个相同的布尔条件来选择dataframe列的子集。
我尝试过的两种方法都没有成功:
df['B'].where(df.A > 0)
这将返回索引中的所有行,而我只希望为上述条件返回
True
的行。
我也尝试过使用
query
,但没有成功,因为它不能用于一个系列。
所以
df['A']。查询(某些条件)
返回错误消息。
理想情况下,我正在寻找的解决方案具有以下条件:
可以在单列或多列上使用。也就是说,您可以使用它选择df['A']
和df['B']
谢谢你。
您正在正确地使用df['B']。何处(df.A)
具有多个(也可以通过单个)条件的示例:
df[['B','C']].where((df.A > 1) & (df.D>0)).dropna().reset_index(drop=True)
使用query
,只是@W-B答案的一个变体:
df.query('A > 0 and B < 0').loc[:, ['B', 'C']]
或者
df.query('A > 0 and B < 0')[['B', 'C']]
也会打印
B C
2 -0.109566 0.118509
我想你在找。loc
df.loc[df.A>0,'B']
0 0.462712
1 0.353600
2 -0.109566
Name: B, dtype: float64
df.loc[(df.A>0)&(df.B<0),['B','C']]
B C
2 -0.109566 0.118509
问题内容: 现在,我知道如何检查数据框中多列中的特定值。但是,我似乎无法弄清楚如何基于布尔响应执行if语句。 例如: 使用和遍历目录并将特定文件读入数据框。 现在检查跨多个列的数据框。第一个值是列名(column1),下一个值是我在该列(香蕉)中寻找的特定值。然后,我正在检查另一列(column2)的特定值(绿色)。如果这两个都是正确的,我想执行一项特定的任务。但是,如果它是错误的,我想做其他事情
问题内容: 如何选择多个文件? 问题答案: 在HTML5中,您可以添加multiple属性以选择多个文件。 旧答案: 每个只能选择1个文件。如果要发送多个文件,则必须使用多个输入标签或使用Flash或Silverlight。
我有一个熊猫数据框,大约有50列和
问题内容: 我有两个这样的表,两个都是单独的表 另一个表包含以下结构 我需要从表II中选择AccountNo或TempAccountNo,Mycolumn,条件是 我需要选择 我需要选择 我该如何实现。 问题答案:
我试图使用JPA标准编写以下查询,但我无法选择子查询中的多列。 我陷入了下面的实现过程中,无法找到如何在子查询中选择多个列。请看我在代码中的评论(第三行)。 请帮我解决这个问题。
问题内容: 给定以下示例表架构 客户表 发票表 目的是选择InvoiceID值为10和20(非OR)的所有客户。因此,在此示例中,将返回带有CustID = 1和2的客户。 您将如何构造SELECT语句? 问题答案: 使用: 关键是需要计数等于子句中参数的数量。 的使用是在对帐务编号和发票编号的组合没有唯一约束的情况下- 如果没有重复的机会,则可以从查询中省略DISTINCT: