在 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