Pandas 在同一列中筛选多个值
时间: 2024-03-18 18:40:21 浏览: 122
如果你想在 Pandas 中的同一列中筛选多个值,可以使用 `isin()` 方法。具体来说,你可以使用以下代码:
```python
df[df['column_name'].isin(['value1', 'value2', 'value3'])]
```
其中,`df` 是指你的 DataFrame 对象,`['column_name']` 指定了你要筛选的列名,`['value1', 'value2', 'value3']` 则是你要筛选的多个值,它们被放在一个列表中。请注意,这里的 `isin()` 方法返回一个布尔值的 Series,用于筛选出 DataFrame 中符合条件的行。
例如,如果你有一个名为 `df` 的 DataFrame,其中有一个名为 `color` 的列,你想筛选出颜色为红色、蓝色和绿色的所有行,你可以使用以下代码:
```python
df[df['color'].isin(['red', 'blue', 'green'])]
```
这会返回一个新的 DataFrame,其中只包含颜色为红色、蓝色和绿色的行。
相关问题
Pandas 在表格同一列中筛选多个数值,并存储筛选后的列表
如果你想在 Pandas 的同一列中筛选多个数值,并将筛选后的结果存储在一个列表中,可以使用 `loc` 方法。具体来说,你可以使用以下代码:
```python
selected_values = df.loc[df['column_name'].isin([value1, value2, value3]), 'column_name'].tolist()
```
其中,`df` 是你的 DataFrame 对象,`['column_name']` 指定了你要筛选的列名,`[value1, value2, value3]` 是你要筛选的多个数值,它们被放在一个列表中。`.loc[]` 方法用于按行和列标签进行索引,第一个参数是行的筛选条件,第二个参数是你要选择的列名。
上述代码通过筛选 `column_name` 列中包含 `value1`、`value2`、`value3` 的行,并将结果存储在一个列表 `selected_values` 中。你可以将 `column_name` 替换为你要筛选的列名,将 `[value1, value2, value3]` 替换为你要筛选的数值列表。
需要注意的是,如果你要筛选的列中包含了字符串类型的数据,那么你需要将数值列表中的元素用引号括起来,例如 `['value1', 'value2', 'value3']`。
Pandas中如果根据关键词在多列中筛选行
在Pandas中,您可以使用`apply()`方法和`lambda`表达式来在多列中根据关键词筛选行。假设您有一个名为`df`的DataFrame,其中包含多个列,您可以使用如下代码来筛选包含关键词的行:
``` python
filtered_df = df[df.apply(lambda row: row.astype(str).str.contains('keyword').any(), axis=1)]
```
其中,`keyword`是您要匹配的关键词,`astype(str)`将每一行的数据类型转换为字符串类型,`str.contains()`方法检查每一行中是否包含关键词,`any()`方法用于检查每一行中是否至少有一个包含关键词的列,`apply()`方法将`lambda`表达式应用到每一行中。
如果您要在多个特定的列中筛选包含关键词的行,可以将这些列名放入一个列表中,并将该列表传递给`apply()`方法。例如,如果您要在`column_name1`和`column_name2`列中筛选包含关键词的行,可以使用如下代码:
``` python
filtered_df = df[df[['column_name1', 'column_name2']].apply(lambda row: row.astype(str).str.contains('keyword').any(), axis=1)]
```
上述代码将在`column_name1`和`column_name2`列中筛选包含关键词的行。
阅读全文