PANDAS 同一列 多条件筛选
时间: 2023-09-07 21:13:39 浏览: 37
在 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 方法来实现同一列多个条件筛选并加总合计。下面是一个示例代码:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M'],
'salary': [5000, 6000, 7000, 8000]
})
# 使用 loc 方法筛选并加总合计
total_salary = df.loc[(df['age'] > 30) & (df['gender'] == 'M'), 'salary'].sum()
print('Total salary:', total_salary)
```
在上面的示例代码中,我们首先创建了一个示例数据,包含了四个人的姓名、年龄、性别和薪资。然后,我们使用 loc 方法来筛选出年龄大于 30 并且性别为男性的人的薪资,并将它们加总合计。最后,我们打印出了总薪资。
用python同一条件筛选多张工作表的列并保存
你可以使用 `pandas` 库来筛选多张工作表的列。以下是一个示例代码:
```python
import pandas as pd
# 定义筛选条件
conditions = {
'Sheet1': ['col1', 'col2'],
'Sheet2': ['col3', 'col4'],
'Sheet3': ['col5', 'col6']
}
# 读取 Excel 文件
excel_file = pd.read_excel('your_excel_file.xlsx', sheet_name=list(conditions.keys()))
# 筛选列并保存到新的 Excel 文件
writer = pd.ExcelWriter('new_excel_file.xlsx')
for sheet_name in excel_file.keys():
sheet_data = excel_file[sheet_name][conditions[sheet_name]]
sheet_data.to_excel(writer, sheet_name=sheet_name)
writer.save()
```
在上面的代码中,首先定义了一个字典 `conditions`,其中包含了每个工作表需要筛选的列。然后使用 `pandas` 的 `read_excel` 函数读取 Excel 文件,并指定要读取的工作表名字。接着,遍历每个工作表,根据 `conditions` 中的筛选条件筛选出对应的列,最后使用 `to_excel` 方法将结果保存到新的 Excel 文件中。