如何在 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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告