在 Pandas DataFrame 中按索引刪除列
DataFrame 可以非常大,可以包含數百行和數百列。熟練掌握 DataFrame 的基本維護操作是很有必要的,比如刪除其中的多列。我們可以使用 dataframe.drop()
方法,根據指定的 axis
從 DataFrame 中刪除列或行,0 代表行,1 代表列。它根據一些標籤來確定要刪除的元素。例如,我們將從下面的 DataFrame 中刪除列'a'
。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print(df)
df.drop(["a"], axis=1, inplace=True)
print(df)
輸出:
a b c d
0 10 6 7 8
1 1 9 12 14
2 5 8 10 6
b c d
0 6 7 8
1 9 12 14
2 8 10 6
請注意 drop 函式中 inplace
引數的使用。當 inplace
引數設定為 True
時,列將從原始 DataFrame 中刪除;否則,將返回原始 DataFrame 的副本。
在我們的例子中,我們已經刪除了列'a'
,但我們需要將其標籤名傳遞給 dataframe.drop()
函式。在處理大型資料集時,我們應該同時處理許多列的此類任務,並且使用列索引代替它們的名稱。
我們可以通過使用 dataframe.columns()
方法來實現,該方法返回 DataFrame 的所有列,並使用它們的索引將所需的列標籤傳遞給 dataframe.drop()
函式。下面的程式碼片段解釋了我們如何做到這一點。
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df.drop(df.columns[[1, 2]], axis=1, inplace=True)
print(df)
輸出:
a d
0 10 8
1 1 14
2 5 6
它將刪除索引為 1
或 2
的列。
我們也可以避免使用 axis
引數,只需在 dataframe.drop()
函式中提到 columns
引數,它就會自動指示要刪除的列。例子
import pandas as pd
df = pd.DataFrame(
[[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
df.drop(columns=df.columns[[1, 2]], inplace=True)
print(df)
輸出:
a d
0 10 8
1 1 14
2 5 6
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