Python Pandas - 切片Series物件



Pandas Series切片是從Series物件中選擇一組元素的過程。Pandas中的Series是一個一維帶標籤的陣列,它類似於一維ndarray(NumPy陣列),但是帶有標籤,也稱為索引。

Pandas Series切片與Python和NumPy切片非常相似,但它具有附加功能,例如基於位置和標籤的切片。在本教程中,我們將學習Pandas Series物件的切片操作。

Pandas Series切片的基礎

可以使用[:]運算子進行Series切片,它允許您透過指定的起始點和結束點從Series物件中選擇元素子集。

以下是Series切片的語法:

  • Series[start:stop:step]:它以指定的步長值選擇從start到end的元素。

  • Series[start:stop]:它以步長1選擇從start到stop的元素。

  • Series[start:]:它以步長1選擇從start到物件末尾的元素。

  • Series[:stop]:它以步長1選擇從開頭到stop的元素。

  • Series[:]:它選擇Series物件中的所有元素。

按位置切片Series

Pandas Series允許您根據元素的位置(即索引值)選擇元素,就像Python列表物件一樣。

示例:從Series中切片一系列值

以下示例演示如何使用位置從Series物件中切片一系列值。

import pandas as pd
import numpy as np

data = np.array(['a', 'b', 'c', 'd'])
s = pd.Series(data)

# Display the Original series
print('Original Series:',s, sep='\n')

# Slice the range of values
result = s[1:3]

# Display the output
print('Values after slicing the Series:', result, sep='\n')

以上程式碼的輸出如下:

Original Series:
0    a
1    b
2    c
3    d
dtype: object
Values after slicing the Series:
1    b
2    c
dtype: object

示例:從Series中切片前三個元素

此示例使用其位置(即索引值)檢索Series中的前三個元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the first three element
print(s[:3])

輸出如下:

a  1
b  2
c  3
dtype: int64

示例:從Series中切片後三個元素

與上述示例類似,以下示例使用元素位置從Series中檢索後三個元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the last three element
print(s[-3:])

輸出如下:

c  3
d  4
e  5
dtype: int64

按標籤切片Series

Pandas Series類似於固定大小的Python dict,您可以透過索引標籤獲取和設定值。

示例:使用標籤從Series中切片一組元素

以下示例透過切片Series的標籤來檢索多個元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

# Slice multiple elements
print(s['a':'d'])

輸出如下:

a    1
b    2
c    3
d    4
dtype: int64

示例:使用標籤切片前三個元素

以下示例使用Series資料的標籤切片前幾個元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

# Slice multiple elements
print(s[:'c'])

輸出如下:

a    1
b    2
c    3
dtype: int64

切片後修改值

切片Series後,您還可以透過將新值賦給那些切片元素來修改值。

示例

以下示例演示如何透過切片訪問範圍值後修改Series值。

import pandas as pd
s = pd.Series([1,2,3,4,5])

# Display the original series 
print("Original Series:\n",s)

# Modify the values of first two elements
s[:2] = [100, 200]

print("Series after modifying the first two elements:",s)

以上程式碼的輸出如下:

Original Series:
 0    1
1    2
2    3
3    4
4    5
dtype: int64
Series after modifying the first two elements:
 0    100
1    200
2      3
3      4
4      5
dtype: int64
廣告