如何在Pandas数据框架中删除一个或多个列

如何在Pandas数据框架中删除一个或多个列

让我们来讨论如何在Pandas数据框架中删除一个或多个列。从Pandas数据框架中删除一列或从数据框架中删除一列或多列,可以通过多种方式实现。

创建一个简单的Dataframe,其中的列名是A、B、C、D、E。在这篇文章中,我们将介绍6种不同的方法来删除Pandas DataFrame中的一些列。

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
df

输出:

如何在Pandas数据框架中删除一个或多个列

方法1:使用drop()方法从数据框架中删除列

例子1: 删除特定的单列。

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
# Remove column name 'A'
df.drop(['A'], axis=1)

输出:

如何在Pandas数据框架中删除一个或多个列

例子2。删除特定的多列

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
# Remove two columns name is 'C' and 'D'
df.drop(['C', 'D'], axis=1)
  
# df.drop(columns =['C', 'D'])

输出:

如何在Pandas数据框架中删除一个或多个列

例子3。根据列索引删除列

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
# Remove three columns as index base
df.drop(df.columns[[0, 4, 2]], axis=1, inplace=True)
  
df

输出:

如何在Pandas数据框架中删除一个或多个列

方法2:使用iloc[]和drop()方法从数据框架中删除列

移除一个特定列到另一列之间的所有列。

# Import pandas package
import pandas as pd
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
# Remove all columns between column index 1 to 3
df.drop(df.iloc[:, 1:3], inplace=True, axis=1)
  
df

输出:

如何在Pandas数据框架中删除一个或多个列

方法3:使用ix()和drop()方法从数据框架中删除列

删除一个特定的列名到另一个列名之间的所有列。

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
# Remove all columns between column name 'B' to 'D'
df.drop(df.ix[:, 'B':'D'].columns, axis=1)

输出:

如何在Pandas数据框架中删除一个或多个列

方法4:使用loc[]和drop()方法从数据框架中删除列

删除一个特定的列名到另一个列名之间的所有列。

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
  
# Remove all columns between column name 'B' to 'D'
df.drop(df.loc[:, 'B':'D'].columns, axis=1)

输出:

如何在Pandas数据框架中删除一个或多个列

注意:不同的loc()和iloc()是iloc()不包括最后一列范围元素。

方法5:以迭代的方式从数据框架中删除列

删除一个特定的列名到另一个列名之间的所有列。

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
for col in df.columns:
    if 'A' in col:
        del df[col]
  
df

输出:

如何在Pandas数据框架中删除一个或多个列

方法6:Python dataframe.pop()方法

# Import pandas package
import pandas as pd
  
# create a dictionary with five fields each
data = {
    'A': ['A1', 'A2', 'A3', 'A4', 'A5'],
    'B': ['B1', 'B2', 'B3', 'B4', 'B5'],
    'C': ['C1', 'C2', 'C3', 'C4', 'C5'],
    'D': ['D1', 'D2', 'D3', 'D4', 'D5'],
    'E': ['E1', 'E2', 'E3', 'E4', 'E5']}
  
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
df.pop('B')
  
df

输出:

A    C    D    E
0    A1    C1    D1    E1
1    A2    C2    D2    E2
2    A3    C3    D3    E3
3    A4    C4    D4    E4
4    A5    C5    D5    E5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程