在Pandas中删除空列

  • Post category:Python

删除Pandas DataFrame中的空列可以通过如下步骤进行:

  1. 使用.isnull()方法检测DataFrame中的空值,返回一个Boolean的DataFrame
  2. 使用.all()方法检查每一列是否全部为True,如果全部为True说明该列全为空值
  3. 使用.loc[]方法选中需要删除的列,并使用.drop()方法将其删除

下面我将用一个实例进行说明:

import pandas as pd
import numpy as np

# 创建带有空列的DataFrame
df = pd.DataFrame({'A': [1, np.nan, np.nan],
                   'B': [2, np.nan, np.nan],
                   'C': [3, np.nan, np.nan],
                   'D': [np.nan, np.nan, np.nan]})
print(df)

# 使用.isnull()方法检测空值
null_cols = df.isnull().all()
print(null_cols)

# 返回:
# A    False
# B    False
# C    False
# D     True
# dtype: bool

# 使用.loc[]方法选中需要删除的列
cols_to_drop = null_cols[null_cols == True].index

# 使用.drop()方法删除列
df = df.drop(cols_to_drop, axis=1)
print(df)

输出结果为:

     A    B    C   D
0  1.0  2.0  3.0 NaN
1  NaN  NaN  NaN NaN
2  NaN  NaN  NaN NaN

A    False
B    False
C    False
D     True
dtype: bool

     A    B    C
0  1.0  2.0  3.0
1  NaN  NaN  NaN
2  NaN  NaN  NaN

在上面的例子中,我们创建了一个带有空列的DataFrame。然后,我们使用.isnull()方法检测每个字段是否为空,并使用.all()方法检查哪些列全都为空。在这种情况下,列”D”完全为空,所以我们选中了该列并使用.drop()方法将它删除。最终的输出结果为删除了空列”D”的DataFrame。