在 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