在 Pandas Dataframe 中选择多列

在从 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 中选择列 ac

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