pandas dataframe多条件筛选
时间: 2023-03-31 21:05:03 浏览: 231
您好,关于 pandas dataframe 的多条件筛选,可以使用 loc 函数进行筛选。例如,假设有一个名为 df 的 dataframe,需要筛选出列 A 大于 10,列 B 等于 'foo',列 C 不等于 'bar' 的行,可以使用以下代码:
df.loc[(df['A'] > 10) & (df['B'] == 'foo') & (df['C'] != 'bar')]
希望能对您有所帮助。
相关问题
pandas dataframe 筛选列
要筛选pandas DataFrame的列,可以使用以下方法:
1. 使用列标签进行筛选:
```python
df_filtered = df[['column1', 'column2']]
```
这将返回一个新的DataFrame,其中只包含指定的列。
2. 使用列索引进行筛选:
```python
df_filtered = df.iloc[:, [0, 1]]
```
这将返回一个新的DataFrame,其中只包含指定的列索引。
3. 使用布尔条件进行筛选:
```python
df_filtered = df[df['column1'] > 10]
```
这将返回一个新的DataFrame,其中只包含满足指定条件的行。
4. 使用列名的字符串方法进行筛选:
```python
df_filtered = df.filter(like='column')
```
这将返回一个新的DataFrame,其中只包含列名中包含指定字符串的列。
5. 使用正则表达式进行筛选:
```python
df_filtered = df.filter(regex='^column')
```
这将返回一个新的DataFrame,其中只包含列名以指定字符串开头的列。
dataframe多条件筛选
可以使用 Pandas 库中的 `loc` 函数进行多条件筛选。假设有一个 DataFrame `df`,现在要筛选出 `col1` 列中值为 `value1`,`col2` 列中值为 `value2` 的行,可以使用如下代码:
```python
filtered_df = df.loc[(df['col1'] == 'value1') & (df['col2'] == 'value2')]
```
其中 `&` 表示逻辑与操作,多个条件可以用 `&` 连接。如果要筛选出其中任意一个条件满足的行,可以使用 `|` 表示逻辑或操作:
```python
filtered_df = df.loc[(df['col1'] == 'value1') | (df['col2'] == 'value2')]
```
还可以使用 `~` 表示逻辑非操作,筛选出不满足某个条件的行:
```python
filtered_df = df.loc[~(df['col1'] == 'value1')]
```
除了使用等于操作符 `==`,还可以使用其他比较操作符,如大于号 `>`、小于号 `<`、大于等于号 `>=`、小于等于号 `<=` 等,具体可以根据实际情况进行选择。