Pandas Series 中的 align() 方法有什麼作用?


Pandas Series 的 align 方法用於根據相同的行和/或列配置來對齊兩個 Pandas Series 物件,這可以透過指定 join、axis 等引數來實現。

Pandas Series 的 align 方法不會合並兩個 Series 物件,而是按照特定順序對其進行對齊。此方法接受 10 個引數,分別是 **“other, join='outer', axis=None, level=None, copy=True, fill_value=None, method=None, limit=None, fill_axis=0, broadcast_axis=None”**。其中,other、join 和 axis 引數非常重要。輸出 Series 物件的對齊方式取決於這些引數。

示例 1

import pandas as pd
s1 = pd.Series([8,4,2,1], index=[5,3,4,2])
s2 = pd.Series([15,12,10,11],index=[1,2,4,5])
print(s1)
print(s2)
a,b = s1.align(s2)
print("Output for align method")
print(a)
print(b)

解釋

s1 和 s2 是兩個 Pandas Series 物件,索引標籤分別為 [1,2,4,5] 和 [2,3,4,5]。我們在這兩個 Series 物件上應用了 align 方法,沒有任何引數,我們得到了另外兩個 Series 物件作為此 align 方法的輸出。

輸出

5    8
3    4
4    2
2    1
dtype: int64
1    15
2    12
4    10
5    11
dtype: int64

Output of align method without any parameter.

1    NaN
2    1.0
3    4.0
4    2.0
5    8.0
dtype: float64
1    15.0
2    12.0
3    NaN
4    10.0
5    11.0
dtype: float64

以上四個 Series 物件是 s1、s2、a 和 b。上面兩個物件是 s1 和 s2,下面兩個是由 Pandas Series align 方法使用預設引數生成的。

s1 中的索引標籤已重新排列,以便與 s2 中的索引對齊。

已向 s1 添加了標記為“1”的索引,並向 s2 添加了標記為“3”的索引。這些值已填充為 NaN。這是因為預設的 join 引數是對索引標籤的外連線。

示例 2

import pandas as pd
s1 = pd.Series([8,4,2,1], index=[5,3,4,2])
s2 = pd.Series([15,12,10,11],index=[1,2,4,5])
print(s1)
print(s2)
a,b = s1.align(s2, join='right')
print("Output of align method with join parameter.")
print(a)
print(b)

解釋

現在,我們已將 join 引數與“right”選項一起應用於上述相同的示例。請觀察下面輸出塊中的差異。

輸出

5    8
3    4
4    2
2    1
dtype: int64
1    15
2    12
4    10
5    11
dtype: int64

Output of align method with join parameter.

1    NaN
2    1.0
4    2.0
5    8.0
dtype: float64
1    15
2    12
4    10
5    11
dtype: int64

只保留在“right”Series 物件 (s2) 中找到的行。索引標籤“3”不再存在。這是因為我們在 Series 物件上進行了右連線。

更新於:2022年3月9日

2K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告