pandas 多个条件筛选多列
时间: 2023-07-11 18:23:16 浏览: 51
在 pandas 中,可以使用 loc 方法进行多条件筛选多列数据。例如,需要筛选出 column1、column2 和 column3 中符合以下两个条件的数据:
1. column1 中的值大于 10;
2. column2 中的值小于 5。
可以使用以下代码实现:
```python
df_filtered = df.loc[(df['column1'] > 10) & (df['column2'] < 5), ['column1', 'column2', 'column3']]
```
其中,第一个参数 `(df['column1'] > 10) & (df['column2'] < 5)` 表示两个条件的逻辑与,第二个参数 `['column1', 'column2', 'column3']` 表示需要筛选的列名。
如果需要使用逻辑或,可以使用 `|` 进行连接,例如:
```python
df_filtered = df.loc[(df['column1'] > 10) | (df['column2'] < 5), ['column1', 'column2', 'column3']]
```
这将筛选出 column1、column2 和 column3 中,满足以下两个条件之一的数据:
1. column1 中的值大于 10;
2. column2 中的值小于 5。
相关问题
PANDAS 同一列 多条件筛选
在 Pandas 中,可以使用 `loc` 方法进行多条件筛选。例如,假设你有一个数据框 df,其中有一列名为 "col",你想要筛选出 "col" 列中值为 A 或 B 的行,可以使用以下代码:
```
df.loc[(df['col'] == 'A') | (df['col'] == 'B')]
```
如果你想要筛选出 "col" 列中值为 A 且 B 的行,可以使用以下代码:
```
df.loc[(df['col'] == 'A') & (df['col'] == 'B')]
```
需要注意的是,条件之间要用括号括起来,并且条件之间要用 `|` 或 `&` 进行连接。
Pandas 列筛选多个条件并加总合计
你可以使用 Pandas 的 loc 方法来筛选多个条件的列并加总合计。例如,假设你有一个 DataFrame,其中包含 'A'、'B' 和 'C' 三列数据,你想要筛选出 'A' 列中大于 5 且 'B' 列中小于 10 的数据,并对 'C' 列进行合计,可以使用以下代码:
``` python
import pandas as pd
# 创建示例数据
data = {'A': [1, 6, 9, 3, 8],
'B': [11, 4, 7, 9, 2],
'C': [5, 2, 8, 6, 1]}
df = pd.DataFrame(data)
# 筛选条件并加总合计
result = df.loc[(df['A'] > 5) & (df['B'] < 10), 'C'].sum()
print(result)
```
输出结果为:
```
2
```
这里的 loc 方法中使用了两个条件,一个是 df['A'] > 5,另一个是 df['B'] < 10,它们之间使用 & 连接表示“且”的关系,即两个条件都需要满足才能筛选出对应的行。最后,我们选择了 'C' 列,并对它进行了合计。