Python loc 不包含
在数据处理和分析领域,Python的Pandas库广泛应用于数据的清洗、处理和分析。在Pandas中,DataFrame是一个非常重要的数据结构,它可以理解为一个二维表,同时提供了丰富的方法和功能来操作和处理数据。DataFrame中的一个重要概念是索引,它可以帮助我们定位和访问数据。其中,loc
是一个常用的方法,用于通过标签对数据进行选择和访问。但是需要注意的是,loc
方法是左闭右闭的,即包含所选标签。
首先,让我们来了解一下loc
方法的基本用法。假设我们有一个包含学生姓名和对应考试成绩的DataFrame:
import pandas as pd
data = {'姓名': ['张三', '李四', '王五', '赵六'],
'语文': [80, 90, 70, 85],
'数学': [85, 92, 75, 80],
'英语': [90, 85, 95, 88]}
df = pd.DataFrame(data)
这个DataFrame看起来如下所示:
姓名 | 语文 | 数学 | 英语 | |
---|---|---|---|---|
张三 | 80 | 85 | 90 | |
1 | 李四 | 90 | 92 | 85 |
2 | 王五 | 70 | 75 | 95 |
3 | 赵六 | 85 | 80 | 88 |
我们可以通过loc
方法选择指定的行和列。例如,我们想选择“张三”的成绩,可以使用以下代码:
df.loc[df['姓名'] == '张三']
运行结果如下:
姓名 | 语文 | 数学 | 英语 | |
---|---|---|---|---|
张三 | 80 | 85 | 90 |
可以看到,loc
方法根据条件选择了满足条件的行。同样,我们也可以选择指定的列,例如我们只想选择“语文”和“数学”两科的成绩,可以使用以下代码:
df.loc[:, ['语文', '数学']]
运行结果如下:
语文 | 数学 | |
---|---|---|
80 | 85 | |
1 | 90 | 92 |
2 | 70 | 75 |
3 | 85 | 80 |
上述代码中,:
表示选择所有行,['语文', '数学']
表示选择指定的两列。
注意,loc
方法是左闭右闭的,即包含所选标签。例如,我们选择“张三”到“王五”的成绩,可以使用以下代码:
df.loc[0:2]
运行结果如下:
姓名 | 语文 | 数学 | 英语 | |
---|---|---|---|---|
张三 | 80 | 85 | 90 | |
1 | 李四 | 90 | 92 | 85 |
2 | 王五 | 70 | 75 | 95 |
可以看到,结果包含了从“张三”到“王五”的所有行。
如果我们想选择不包含指定标签的行,可以使用~
运算符进行取反。例如,我们想选择除了“张三”和“李四”之外的成绩,可以使用以下代码:
df.loc[~df['姓名'].isin(['张三', '李四'])]
运行结果如下:
姓名 | 语文 | 数学 | 英语 | |
---|---|---|---|---|
2 | 王五 | 70 | 75 | 95 |
3 | 赵六 | 85 | 80 | 88 |
可以看到,结果不包含“张三”和“李四”的成绩。
总结来说,`