在 Pandas Dataframe 中選擇多列
Manav Narula
2023年1月30日
在從 Pandas DataFrame 中提取多列資料時,我們可能會遇到一些問題,這主要是因為他們把 Dataframe 當作一個二維陣列。要從 DataFrame 中選擇多列資料,我們可以使用基本的索引方法,將列名列表傳遞給 __getitem__
語法([]
),或者使用 Pandas 庫提供的 iloc()
和 loc()
方法。在本教程中,我們將從以下 DataFrame 中選擇多列。
示例 DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
print(df)
輸出:
a b c d
0 0.255086 0.282203 0.342223 0.263599
1 0.744271 0.591687 0.861554 0.871859
2 0.420066 0.713664 0.770193 0.207427
3 0.014447 0.352515 0.535801 0.119759
使用 __getitem__
語法([]
)選擇多列
通過將要提取的列名儲存在一個列表中,然後傳遞給 []
,我們可以從 DataFrame 中選擇多個列。下面的程式碼將解釋我們如何從之前顯示的 DataFrame 中選擇列 a
和 c
。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
print(df[["a", "c"]])
輸出:
a c
0 0.255086 0.342223
1 0.744271 0.861554
2 0.420066 0.770193
3 0.014447 0.535801
在 Pandas 中使用 iloc()
和 loc()
方法選擇多列
我們還可以使用 iloc()
和 loc()
方法來選擇多列。
當我們要使用列索引來提取它們時,我們可以使用 iloc()
,如下例所示。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
print(df.iloc[:, [0, 2]])
輸出:
a c
0 0.255086 0.342223
1 0.744271 0.861554
2 0.420066 0.770193
3 0.014447 0.535801
同樣,當我們想使用列名來選擇列時,我們可以使用 loc()
,如下圖所示。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4, 4), columns=["a", "b", "c", "d"])
print(df.loc[:, ["a", "c"]])
輸出:
a c
0 0.255086 0.342223
1 0.744271 0.861554
2 0.420066 0.770193
3 0.014447 0.535801
作者: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn