我模拟如下数据帧:
import pandas as pd
import numpy as np
# Create Missing Values in DataFrame
df = pd.DataFrame(np.random.randn(5,5))
df[df > 0.9] = pd.np.nan
df.columns = ['A', 'B','C','D','E']
df
我给它的列名分别为A,B,C,D,E。我有这个python代码,可以通过pandas删除包含至少一个缺失值的行,如下所示。
df.loc[(~pd.isnull(df['A']))&\
(~pd.isnull(df['B']))&\
(~pd.isnull(df['C']))&\
(~pd.isnull(df['D']))&\
(~pd.isnull(df['E']))]
如何实现删除任何行中以及特定行中至少包含一个缺失值的列而不是行?
答案 0 :(得分:3)
使用df.dropna()
删除包含NaN的行/列。了解更多https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
答案 1 :(得分:2)
考虑布尔选择
df.loc[:, ~df.isnull().any(axis=0)]
答案 2 :(得分:1)
您可以使用isnull()
和drop
:
for i in df.columns:
if df[i].isnull().count() > 0:
df = df.drop(i, axis=1)
答案 3 :(得分:1)