使用Python 3删除数据框中多个指定列中具有空值的特定行

时间:2018-03-23 14:49:05

标签: python python-3.x pandas dataframe

我有一个包含23列和71k行的大型数据集,我想删除多个给定列中具有空值的行。

假设我们有列a,b,c,d,e,f,g,我想根据条件删除行:

a,b,c,d列中的值为空,因此将使用&或'和'表示多列条件。

由于数据集较大,索引不会有太大帮助,因此我需要一些循环来完成此任务并为我过滤掉数据。

1 个答案:

答案 0 :(得分:1)

pd.DataFrame.dropnasubsethow参数一起使用:

import pandas as pd, numpy as np

df = pd.DataFrame({'a': [np.nan, 1, 2, 3],
                   'b': [np.nan, np.nan, 2, 3],
                   'c': [np.nan, 5, 6, 7],
                   'd': [np.nan, 8, 9, 10],
                   'e': [11, 11, 12, 13],
                   'f': [14, 14, 15, 16]})

df2 = df.dropna(subset=['a', 'b', 'c', 'd'], how='any')
#    a  b  c   d   e   f
# 2  2  2  6   9  12  15
# 3  3  3  7  10  13  16

df3 = df.dropna(subset=['a', 'b', 'c', 'd'], how='all')
#    a   b  c   d   e   f
# 1  1 NaN  5   8  11  14
# 2  2   2  6   9  12  15
# 3  3   3  7  10  13  16