Bet体育365提款要多久

Pandas drop删除DataFrame或Series中的指定行或列

Pandas drop删除DataFrame或Series中的指定行或列

Pandas drop删除DataFrame或Series中的指定行或列

参考:pandas drop

pandas的drop函数是一个非常有用的函数,它可以帮助我们删除DataFrame或Series中的指定行或列。在数据分析过程中,我们经常需要删除一些不需要的行或列,这时候就可以使用pandas的drop函数。

1. 基本用法

pandas的drop函数的基本语法如下:

DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

参数说明:

labels:要删除的行或列的标签。

axis:删除行还是列。0或’index’表示删除行,1或’columns’表示删除列。

index:要删除的行标签。

columns:要删除的列标签。

level:用于多级索引。

inplace:是否在原地修改数据。如果为True,则在原DataFrame上进行修改,如果为False,则返回一个新的DataFrame。

errors:如果指定的标签不存在,如何处理。’raise’表示抛出错误,’ignore’表示忽略。

下面我们通过一些示例来详细介绍pandas的drop函数的用法。

示例1:删除行

首先,我们创建一个DataFrame。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

print(df)

Output:

然后,我们可以使用drop函数删除指定的行。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

df.drop([1, 3])

print(df)

Output:

示例2:删除列

我们也可以使用drop函数删除指定的列。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

df.drop('age', axis=1)

print(df)

Output:

示例3:使用inplace参数

如果我们想在原地修改数据,可以使用inplace参数。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

df.drop('age', axis=1, inplace=True)

print(df)

Output:

示例4:使用errors参数

如果我们尝试删除不存在的标签,会抛出错误。如果我们不想抛出错误,可以使用errors参数。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

df.drop('salary', axis=1, errors='ignore')

print(df)

Output:

2. 多级索引

如果我们的DataFrame有多级索引,我们可以使用level参数来指定在哪一级删除标签。

首先,我们创建一个有多级索引的DataFrame。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

print(df)

Output:

然后,我们可以使用drop函数删除指定级别的标签。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

df.drop(1, level=0)

print(df)

Output:

示例5:删除多级索引的行

我们也可以删除多级索引的行。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

df.drop((1, 1))

print(df)

Output:

示例6:删除多级索引的列

如果我们的DataFrame有多级索引的列,我们也可以使用drop函数删除指定的列。

首先,我们创建一个有多级索引的列的DataFrame。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

print(df)

然后,我们可以使用drop函数删除指定的列。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df.drop(('A', 'a'), axis=1)

print(df)

3. 删除缺失值

pandas的drop函数还可以用来删除含有缺失值的行或列。

首先,我们创建一个含有缺失值的DataFrame。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

print(df)

然后,我们可以使用drop函数删除含有缺失值的行。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

df.dropna()

print(df)

我们也可以删除含有缺失值的列。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

df.dropna(axis=1)

print(df)

示例7:删除含有缺失值的行

我们可以使用drop函数删除含有缺失值的行。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

df.dropna()

print(df)

示例8:删除含有缺失值的列

我们也可以使用drop函数删除含有缺失值的列。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

df.dropna(axis=1)

print(df)

示例9:使用how参数

dropna函数还有一个how参数,可以指定如何删除缺失值。’any’表示只要有缺失值就删除,’all’表示所有值都是缺失值才删除。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

df.dropna(how='all')

print(df)

示例10:使用thresh参数

dropna函数还有一个thresh参数,可以指定至少有多少个非缺失值才保留。

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 32, 18, 21, 35],

'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle', 'Austin']

}

df = pd.DataFrame(data)

index = pd.MultiIndex.from_tuples([(i, j) for i in range(5) for j in range(5)])

df = pd.DataFrame({'A': range(25)}, index=index)

columns = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['a', 'b', 'c']])

df = pd.DataFrame(np.random.rand(5, 9), columns=columns)

df = pd.DataFrame({

'A': [1, 2, np.nan, 4, 5],

'B': [np.nan, 2, 3, 4, 5],

'C': [1, 2, 3, np.nan, 5],

'D': [1, 2, 3, 4, np.nan]

})

df.dropna(thresh=3)

print(df)

4. 总结

pandas的drop函数是一个非常有用的函数,它可以帮助我们删除DataFrame或Series中的指定行或列。在数据分析过程中,我们经常需要删除一些不需要的行或列,这时候就可以使用pandas的drop函数。

相关推荐

Bet体育365提款要多久 闲鱼拍卖怎么中途取消?买家取消会扣保证金吗?
Bet体育365提款要多久 萌新的丐帮起步之路
365be是啥 联通查话费怎么查