分享

第四篇:数据选择与过滤:Pandas中的强大索引技巧

 禁忌石 2023-07-11 发布于浙江

天下代码一大抄, 抄来抄去有提高, 看你会抄不会抄!

本系列文章还是引用之前的理念,阅读文章,你不需要记,只要知道这一篇在讲什么即可,收藏起来,用的时候过来抄代码。

提前说明,本篇文章代码演示较多, 建议收藏后在阅读, 如果能动手实践效果加倍。

在本篇文章中,我们将深入探讨Pandas中的数据选择与过滤技巧,帮助您灵活地提取和操作数据。下面是我们将要讲解的关键内容:

第四篇:数据选择与过滤:Pandas中的强大索引技巧

一、关键内容

通过掌握本篇文章中介绍的强大索引技巧,您将能够准确地选择和过滤数据,根据需求提取出所需的数据子集,为后续的分析和建模工作提供支持。

1.1 单列选择:

  • 使用标签选择:使用列标签来选择单列数据。
  • 使用位置选择:使用列的位置索引来选择单列数据。
  • 使用布尔索引:根据布尔条件来选择单列数据。

1.2 多列选择:

  • 使用标签选择:使用列标签列表来选择多列数据。
  • 使用位置选择:使用列的位置索引列表来选择多列数据。

1.3 行选择:

  • 使用标签选择:使用行标签来选择单行数据。
  • 使用位置选择:使用行的位置索引来选择单行数据。
  • 使用布尔索引:根据布尔条件来选择单行或多行数据。

1.4 切片选择:

  • 使用标签切片:使用起始和结束的标签来选择一定范围的数据。
  • 使用位置切片:使用起始和结束的位置索引来选择一定范围的数据。

1.5 条件选择:

  • 使用布尔条件:根据布尔条件来选择满足条件的数据。
  • 使用 isin() 方法:根据列中的值是否在给定列表中来选择数据。

二、单列选择

2.1 使用标签选择

通过[]直接使用列的标签选中列。

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# 使用标签选择单列数据column_A = df['A']# 0 1# 1 2# 2 3# 3 4# 4 5print(column_A)

2.2 使用位置选择

  • : 符号代表所有行
  • 1:3 代表选择1,2行
  • 列索引也是从0开始,上面A是第一列,所以索引是0
import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5],        'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# : 代表所有行, 0代表第一列,等同于Aprint(df.iloc[:, 0])# 1    2# 2    3print(df.iloc[1:3, 0])

2.3 使用布尔索引

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# A B# 1 2 7# 2 3 8# 3 4 9# 4 5 10print(df[df['A'] >= 2])

三、多列选择

3.1 使用标签选择

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5],        'B': [6, 7, 8, 9, 10],        'C': [11, 12, 13, 14, 15]}df = pd.DataFrame(data)# 使用标签选择多列数据#    A   B# 0  1   6# 1  2   7# 2  3   8# 3  4   9# 4  5  10columns_AB = df[['A', 'B']]print(columns_AB)

3.2 使用位置选择

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10], 'C': [11, 12, 13, 14, 15]}df = pd.DataFrame(data)# 使用位置选择多列数据# A B# 0 1 6# 1 2 7# 2 3 8# 3 4 9# 4 5 10columns_01 = df.iloc[:, [0, 1]]print(columns_01)

四、行选择

4.1 使用标签选择

为了方便举例,我们指定了索引是从a-e。

然后使用索引b选中b行

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5],        'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e'])#    A   B# a  1   6# b  2   7# c  3   8# d  4   9# e  5  10print(df)# 使用标签选择单行数据# A    2# B    7print(df.loc['b'])

4.2 使用位置选择

如果我们索引指定,那么 df.loc['b'] = df.loc[1]

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# A B# 0 1 6# 1 2 7# 2 3 8# 3 4 9# 4 5 10print(df)# 使用标签选择单行数据# A 2# B 7print(df.loc[1])

4.3 使用布尔索引

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5],        'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# 使用布尔索引选择单行或多行数据rows_A_greater_3 = df['A'] > 3# 0    False# 1    False# 2    False# 3     True# 4     Trueprint(rows_A_greater_3)filtered_data = df[rows_A_greater_3]#    A   B# 3  4   9# 4  5  10print(filtered_data)

五、切片选择

5.1 使用标签切片

  • a:b 就是包括a,包括b,以及他们中间的索引。
import pandas as pd# 创建示例 DataFramedata = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10], 'C': [11, 12, 13, 14, 15]}df = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e'])# 使用行索引切片选择子集数据subset = df['a':'b']# A B C# a 1 6 11# b 2 7 12print(subset)

5.2 使用位置切片

  • 1:3 就是包括1,不包括3,以及他们中间的索引。
import pandas as pd# 创建示例 DataFramedata = {'A': [1, 2, 3, 4, 5],        'B': [6, 7, 8, 9, 10],        'C': [11, 12, 13, 14, 15]}df = pd.DataFrame(data)#    A   B   C# 0  1   6  11# 1  2   7  12# 2  3   8  13# 3  4   9  14# 4  5  10  15print(df)# 使用行索引切片选择子集数据#    A  B   C# 1  2  7  12# 2  3  8  13subset = df[1:3]print(subset)

六、条件选择

6.1 布尔条件

import pandas as pd# 创建示例DataFramedata = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# 使用布尔条件选择满足条件的数据filtered_data = df[df['A'] > 3]print(filtered_data)

6.2 isin() 方法

import pandas as pd# 创建示例DataFramedata = {'A': ['apple', 'banana', 'cherry', 'apple', 'banana'],        'B': [6, 7, 8, 9, 10]}df = pd.DataFrame(data)# 使用 `isin()` 方法根据列中的值选择数据fruits = ['apple', 'banana']filtered_data = df[df['A'].isin(fruits)]#         A   B# 0   apple   6# 1  banana   7# 3   apple   9# 4  banana  10print(filtered_data)

第四篇:数据选择与过滤:Pandas中的强大索引技巧

文章内容较多,建议收藏后,慢慢观看,你的关注是我继续的动力。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多