📜  选择所有列,除了 Pandas DataFrame 中的一个给定列

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

选择所有列,除了 Pandas DataFrame 中的一个给定列

DataFrame数据结构是 Pandas 库的核心。数据框基本上是二维系列对象。它们有行和列,行代表索引,列代表内容。现在,让我们看看如何选择所有列,除了 Pandas Dataframe 中的一个给定列。

首先,让我们创建一个数据框:

Python3
# import pandas library
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
    'course_name': ['Data Structures', 'Python',
                    'Machine Learning'],
    'student_name': ['A', 'B', 
                     'C'],
    'student_city': ['Chennai', 'Pune', 
                     'Delhi'],
    'student_gender': ['M', 'F',
                       'M'] })
# show the Dataframe
data


Python3
# import pandas library
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
    'course_name': ['Data Structures', 'Python',
                    'Machine Learning'],
    'student_name': ['A', 'B', 
                     'C'],
    'student_city': ['Chennai', 'Pune', 
                     'Delhi'],
    'student_gender': ['M', 'F',
                       'M'] })
                         
df = data.loc[ : , data.columns != 'student_gender']
  
# show the dataframe
df


Python3
# import pandas library
  
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
   'course_name': ['Data Structures', 'Python',
                   'Machine Learning'],
  
   'student_name': ['A', 'B',
                    'C'],
  
   'student_city': ['Chennai', 'Pune',
                    'Delhi'],
  
   'student_gender': ['M', 'F',
                      'M'] })
  
# drop method
df = data.drop('student_city',
               axis = 1)
   
# show the dataframe
df


Python3
# import pandas library
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
    'course_name': ['Data Structures', 'Python',
                    'Machine Learning'],
    'student_name': ['A', 'B', 
                     'C'],
    'student_city': ['Chennai', 'Pune', 
                     'Delhi'],
    'student_gender': ['M', 'F',
                       'M'] })
                         
df = data[data.columns.difference(['student_name'])]
  
# show the dataframe
df


输出:

数据框

数据框

方法一:使用Dataframe.loc[ ]

这个 GeeksForGeeks Dataframe 只是一个带有数字索引的二维数组。因此,除了只有一列,我们可以使用 columns 方法获取所有列,并使用 not运算符排除不需要的列。此方法仅在 Dataframe 不是多索引(没有多个索引)时有效。

示例:选择所有列,除了 Pandas Dataframe 中的一个“student_gender”列。

Python3

# import pandas library
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
    'course_name': ['Data Structures', 'Python',
                    'Machine Learning'],
    'student_name': ['A', 'B', 
                     'C'],
    'student_city': ['Chennai', 'Pune', 
                     'Delhi'],
    'student_gender': ['M', 'F',
                       'M'] })
                         
df = data.loc[ : , data.columns != 'student_gender']
  
# show the dataframe
df

输出:

过滤的 student_gender 列

方法二:使用drop()方法。

Dataframe 支持 drop() 方法来删除特定的列。它接受两个参数,列/行名称和轴

示例:选择所有列,除了 Pandas Dataframe 中的一个“student_city”列。

Python3

# import pandas library
  
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
   'course_name': ['Data Structures', 'Python',
                   'Machine Learning'],
  
   'student_name': ['A', 'B',
                    'C'],
  
   'student_city': ['Chennai', 'Pune',
                    'Delhi'],
  
   'student_gender': ['M', 'F',
                      'M'] })
  
# drop method
df = data.drop('student_city',
               axis = 1)
   
# show the dataframe
df

输出:

student_city 列已删除

student_city 列已删除

方法三: Series.difference()方法和[ ]运算符一起使用。

Series.difference() 方法 返回一个新索引,其中包含索引中不在 other 中的元素。

示例:选择所有列,除了 Pandas Dataframe 中的一个“student_name”列。

Python3

# import pandas library
import pandas as pd
  
# create a Dataframe
data = pd.DataFrame({
    'course_name': ['Data Structures', 'Python',
                    'Machine Learning'],
    'student_name': ['A', 'B', 
                     'C'],
    'student_city': ['Chennai', 'Pune', 
                     'Delhi'],
    'student_gender': ['M', 'F',
                       'M'] })
                         
df = data[data.columns.difference(['student_name'])]
  
# show the dataframe
df

输出:

过滤的 student_name 列

过滤的 student_name 列