pandas的dataframe根据一个条件取出df
时间: 2023-05-09 20:01:41 浏览: 93
在pandas中,我们可以使用布尔索引的方式根据一个或多个条件来过滤dataframe中的数据。
假设我们有一个叫做df的dataframe,现在我们希望根据一个条件取出其中的一部分数据。
首先,我们需要想好要根据哪个条件来过滤数据。比如,我们想要取出df中“age”这一列大于20的所有行。那么,我们可以用以下代码来实现:
```
df[df['age'] > 20]
```
这行代码的含义是,先取出df中“age”这一列,然后判断其中每个元素是否大于20,最后返回所有满足条件的行。这样,我们就得到了一个新的dataframe,其中只包含满足条件的那些行。
另外,如果我们想要根据多个条件来取出数据,可以使用“&”(与运算)和“|”(或运算)来连接条件。比如,我们想要取出df中“age”大于20并且“gender”是“female”的所有行,可以用以下代码:
```
df[(df['age'] > 20) & (df['gender'] == 'female')]
```
这行代码的含义是,先判断“age”这一列是否大于20,并且判断“gender”这一列是否等于“female”,最后返回所有同时满足这两个条件的行。同样,我们可以得到一个新的只包含满足条件的行的dataframe。
总之,pandas的布尔索引是非常方便的一种方法,可以根据各种条件来过滤dataframe中的数据,非常适合数据筛选和数据清洗。
相关问题
pandas DataFrame 根据一个索引列表,取出除了该索引列表中的索引外的其他数据
可以使用 `~` 运算符和 `isin()` 方法来实现。
假设我们的 DataFrame 是 `df`,索引列表是 `idx_list`,那么可以这样取出除了该索引列表中的索引外的其他数据:
```python
df[~df.index.isin(idx_list)]
```
这里的 `~` 运算符表示取反,也就是排除索引列表中的索引。`isin()` 方法用于判断一个元素是否包含在一个列表中,返回的是一个布尔型的 Series。
因此,上述代码会返回一个 DataFrame,其中包含所有除了 `idx_list` 中索引对应的数据以外的其他数据。
取出pandas dataframe一列中小于10的行
可以使用pandas的条件筛选语句,例如:
```
import pandas as pd
# 创建一个示例dataframe
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]})
# 筛选出'A'列小于10的行
result = df[df['A'] < 10]
print(result)
```
输出结果:
```
A B
0 1 6
1 2 7
3 4 9
4 5 10
```
阅读全文