在 Pandas 中对 DataFrame 进行列切片

Manav Narula 2023年1月30日 2020年12月19日
  1. 使用 loc() 对 Pandas DataFrame 中的列切片
  2. 使用 iloc() 在 Pandas DataFrame 中列切片
  3. 使用 redindex() 在 Pandas DataFrame 中切列片
在 Pandas 中对 DataFrame 进行列切片

Pandas 中的列式切片允许我们将 DataFrame 切成子集,这意味着它从原来的 DataFrame 中创建一个新的 Pandas 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.797321  0.468894  0.335781  0.956516
1  0.546303  0.567301  0.955228  0.557812
2  0.385315  0.706735  0.058784  0.578468
3  0.751037  0.248284  0.172229  0.493763

使用 loc() 对 Pandas DataFrame 中的列切片

Pandas 库为我们提供了一种以上的方法来进行列式切片。第一种是使用 loc() 函数。

Pandas 的 loc() 函数允许我们使用列名或索引标签来访问 DataFrame 的元素。使用 loc() 进行列切片的语法:

dataframe.loc[:,[columns]]

例子:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])
df1 = df.loc[:,'a':'c'] #Returns a new dataframe with columns a,b and c
print(df1)

输出:

          a         b         c
0  0.344952  0.611792  0.213331
1  0.907322  0.992097  0.080447
2  0.471611  0.625846  0.348778
3  0.656921  0.999646  0.976743

使用 iloc() 在 Pandas DataFrame 中列切片

我们也可以使用 iloc() 函数来使用行和列的整数索引来访问 DataFrame 的元素。使用 iloc() 对列进行切片的语法。

dataframe.iloc[:,[column-index]]

例:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])
df1 = df.iloc[:,0:2] #Returns a new dataframe with first two columns
print(df1)

输出:

          a         b
0  0.034587  0.070249
1  0.648231  0.721517
2  0.485168  0.548045
3  0.377612  0.310408

使用 redindex() 在 Pandas DataFrame 中切列片

reindex() 函数也可用于改变 DataFrame 的索引,并可用于列的切片。reindex() 函数可以接受许多参数,但对于列的分割,我们只需要向函数提供列名。

使用 reindex() 进行列切片的语法:

dataframe.reindex(columns= [column_names])

例:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4,4), columns = ['a','b','c','d'])
df1 = df.reindex(columns = ['c','b']) #Returns a new dataframe with c and b columns
print(df1)

输出:

          c         b
0  0.429790  0.962838
1  0.605381  0.463617
2  0.922489  0.733338
3  0.741352  0.118478
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

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

相关文章 - Pandas DataFrame