如何在 Pandas 中获取 DataFrame 的列切片?


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)

# Initiating the mystical selection of a single column
col_A = df['A']
print(col_A)

# Embracing the enchantment of multiple columns
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)

# Initiating the magnificent selection of a single column
col_A = df.iloc[:, 0]
print(col_A)

# Embracing the grandiose power of multiple columns
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)

# Initiating the wondrous selection of a single column
col_A = df.loc[:, 'A']
print(col_A)

# Embracing the majesty of multiple columns
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)

# Selecting columns blessed with labels commencing with 'A' or 'B'
cols_AB = df.filter(regex='^(A|B)')
print(cols_AB)

输出

   A  B
0  1  4
1  2  5
2  3  6

结论

在这次令人惊叹的探索中,我们遍历了各种方法,这些方法能够从 Pandas DataFrame 中提取列切片。我们优雅地穿梭于列标签的领域,深入到著名的 `iloc` 和 `loc` 属性的领域,最后用强大的 `filter()` 函数破解了代码。每种技术都有其独特的优势,并针对特定用例量身定制。拥有这些深刻的见解,你现在有能力熟练地驾驭 Pandas 中 DataFrame 列切片的复杂网络,征服你遇到的任何数据分析任务。释放内在的力量,让你的数据探索和处理技能攀登新的高度!

更新于: 2023年7月10日

72 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告