我有以下数据帧:
df = pd.DataFrame([[1,2,3,3],[10,20,2,],[10,2,5,],[1,3],[2]],columns = ['a','b','c','d'])
Run Code Online (Sandbox Code Playgroud)
从这个 DataFrame 中,我想删除子集 ['b', 'c', 'd'] 中所有值都是 NA 的行,这意味着应该删除最后一行。
以下代码有效:
df.dropna(subset=['b', 'c', 'd'], how = 'all')
Run Code Online (Sandbox Code Playgroud)
但是,考虑到我将使用更大的数据框,我想使用范围 ['b':'d'] 选择相同的子集。我如何选择这个子集?
IIUC,使用loc,检索这些列,并将其传递给dropna.
c = df.loc[0, 'b':'d'].columns # retrieve only the 0th row for efficiency
df = df.dropna(subset=c, how='all')
print(df)
a b c d
0 1 2.0 3.0 3.0
1 10 20.0 2.0 NaN
2 10 2.0 5.0 NaN
3 1 3.0 NaN NaN
Run Code Online (Sandbox Code Playgroud)