我有一个包含23列和71k行的大型数据集,我想删除多个给定列中具有空值的行。
假设我们有列a,b,c,d,e,f,g,我想根据条件删除行:
a,b,c,d列中的值为空,因此将使用&或'和'表示多列条件。
由于数据集较大,索引不会有太大帮助,因此我需要一些循环来完成此任务并为我过滤掉数据。
答案 0 :(得分:1)
将pd.DataFrame.dropna
与subset
和how
参数一起使用:
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