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

可以看到,结果不包含“张三”和“李四”的成绩。

总结来说,`