如何在 Pandas 中对 DataFrame 进行列切片?

pythonpandasprogramming

Pandas 是一个颇具影响力的 Python 库,以其数据处理和分析功能而闻名,它提供了一系列工具来为数据科学家和分析师提供支持。在其主要数据结构中,DataFrame 独树一帜 - 一个二维标记数据结构,其列可能具有多种类型。在遍历 DataFrame 的广阔领域时,经常需要提取特定列或一系列列,这种艺术通常称为列切片。在本文中,我们将开始探索各种方法,揭开在 Pandas 中进行列切片的秘密。准备好通过以下技术进行一次探险吧,这些技术将彻底改变您的数据处理技能:

  • 揭开列标签的魔力

  • 著名的 `iloc` 属性:释放索引的力量

  • `loc` 属性:选择性切片的门户

  • 使用强大的 `filter()` 函数破解代码

示例 1:揭开列标签的魔力

从 DataFrame 中选择特定列时,最简单的遍历路径是利用迷人的列标签。您可以利用方括号 `[]` 的功能并使用列标签来选择单个列,或者优雅地传递列标签列表以享受多列的魅力。

import pandas as pd

data = {'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]}

df = pd.DataFrame(data)

# 启动单个列的神秘选择
col_A = df['A']
print(col_A)

# 享受多列的魅力
cols_AB = df[['A', 'B']]
print(cols_AB)

输出

0    1
1    2
2    3
Name: A, dtype: int64

   A  B
0  1  4
1  2  5
2  3  6

示例 2:著名的"iloc"属性:释放索引的力量

看看"iloc"属性的强大之处,当涉及到通过整数索引的强大力量来选择列时,它是一种不容小觑的力量。当您试图遍历列的范围或难以捉摸的列标签逃避您的知识时,它会发挥最大的作用。

import pandas as pd

data = {'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9]}

df = pd.DataFrame(data)

# 启动单列的宏伟选择
col_A = df.iloc[:, 0]
print(col_A)

# 拥抱多列的宏伟力量
cols_AB = df.iloc[:, 0:2]
print(cols_AB)

输出

0    1
1    2
2    3
Name: A, dtype: int64

   A  B
0  1  4
1  2  5
2  3  6

示例 3:'loc' 属性:选择性切片的门户

欢迎来到 `loc` 属性领域,这是一种基于标签选择列的受人尊敬的方法。与第一种方法产生共鸣,它使您能够使用受人尊敬的冒号 `:` 运算符浏览一系列列。

import pandas as pd

data = {'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9]}

df = pd.DataFrame(data)

# 启动单列的奇妙选择
col_A = df.loc[:, 'A']
print(col_A)

# 拥抱多列的威严
cols_AB = df.loc[:, 'A':'B']
print(cols_AB)

输出

0    1
1    2
2    3
Name: A, dtype: int64

   A  B
0  1  4
1  2  5
2  3  6

示例 4:使用强大的"filter()"函数破解代码

准备揭开"filter()"函数的秘密——这是一个非凡的工具,它赋予您使用正则表达式选择列的能力。当您寻找标签中带有特定模式标记的列时,它的真正力量就会显现出来。

import pandas as pd

data = {'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9]}

df = pd.DataFrame(data)

# 选择标签以"A"或"B"开头的列
cols_AB = df.filter(regex='^(A|B)')
print(cols_AB)

输出

   A  B
0  1  4
1  2  5
2  3  6

结论

在这次令人敬畏的探险中,我们遍历了从 Pandas DataFrames 中提取列切片的各种方法。我们优雅地浏览了列标签领域,深入研究了著名的 `iloc` 和 `loc` 属性领域,并最终使用强大的 `filter()` 函数破解了代码。每种技术都有其独特的优势,并针对特定用例进行了量身定制。有了这些深刻的见解,您现在就可以熟练地在 Pandas 中复杂的 DataFrame 列切片网络中操作,征服您遇到的任何数据分析任务。释放内在的力量,让您的数据探索和操作技能飞向新的高度!"


相关文章