📜  如何在 Pandas 中获取 DataFrame 的列切片?

📅  最后修改于: 2022-05-13 01:54:24.208000             🧑  作者: Mango

如何在 Pandas 中获取 DataFrame 的列切片?

在本文中,我们将学习如何在Python按列对 DataFrame 进行切片。 DataFrame 是一个二维表格数据结构,带有标记的轴。即行和列。可以使用以下两种方法对 DataFrame 进行切片:

方法#1

使用 loc,loc 存在于 pandas 包中 loc 可用于使用索引对数据帧进行切片。 Pandas DataFrame.loc 属性通过标签或给定 DataFrame 中的布尔数组访问一组行和列。

句法:

方法:



  • 这里 first 表示要取的第一列的名称。
  • Last 表示要取的最后一列的名称。
  • 该步长指示每次提取后要推进的索引数。

示例 1:

Python3
# importing pandas
import pandas as pd
  
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3], "b": [2, 3, 4], 
                    "c": [3, 4, 5], "d": [4, 5, 6], 
                    "e": [5, 6, 7]})
  
df2 = df1.loc[:, "b":"d":2]
print(df2)


Python3
# importing pandas
import pandas as pd
  
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5, 6, 7], 
                    "b": [2, 3, 4, 2, 3, 4, 5], 
                    "c": [3, 4, 5, 2, 3, 4, 5], 
                    "d": [4, 5, 6, 2, 3, 4, 5], 
                    "e": [5, 6, 7, 2, 3, 4, 5]})
  
df2 = df1.loc[:, "c":"e":1]
print(df2)


Python3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5], 
                    "b": [2, 3, 4, 5, 6], 
                    "c": [3, 4, 5, 6, 7], 
                    "d": [4, 5, 7, 8, 9]})
  
df2 = df1.iloc[:, 1:3:1]
print(df2)


Python3
# importing pandas
import pandas as pd
  
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5], 
                    "b": [2, 3, 4, 5, 6], 
                    "c": [3, 4, 5, 6, 7], 
                    "d": [4, 5, 7, 8, 9]})
  
df2 = df1.iloc[:, 0:3:2]
print(df2)


输出

示例 2:

蟒蛇3

# importing pandas
import pandas as pd
  
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5, 6, 7], 
                    "b": [2, 3, 4, 2, 3, 4, 5], 
                    "c": [3, 4, 5, 2, 3, 4, 5], 
                    "d": [4, 5, 6, 2, 3, 4, 5], 
                    "e": [5, 6, 7, 2, 3, 4, 5]})
  
df2 = df1.loc[:, "c":"e":1]
print(df2)

输出:



方法#2

使用 iloc,iloc 存在于 pandas 包中。 iloc 可用于使用索引对数据帧进行切片。当数据框的索引标签不是 0、1、2、3....n 的数字系列时,或者在用户不知道索引标签的情况下,使用 Dataframe.iloc[] 方法。可以使用在数据框中不可见的虚构索引位置提取行。

句法:

方法:

  • 这里Start表示要取的第一列的索引。
  • 停止指示要采取的最后一列的索引。
  • 该步长指示每次提取后要推进的索引数。

示例 1:

蟒蛇3

# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5], 
                    "b": [2, 3, 4, 5, 6], 
                    "c": [3, 4, 5, 6, 7], 
                    "d": [4, 5, 7, 8, 9]})
  
df2 = df1.iloc[:, 1:3:1]
print(df2)

输出:

示例 2:

蟒蛇3

# importing pandas
import pandas as pd
  
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5], 
                    "b": [2, 3, 4, 5, 6], 
                    "c": [3, 4, 5, 6, 7], 
                    "d": [4, 5, 7, 8, 9]})
  
df2 = df1.iloc[:, 0:3:2]
print(df2)

输出: