>>> df
c1 c2 P1
0 10.0 20.0 1
1 NaN 40.0 2
2 50.0 NaN 3
3 NaN NaN 4
4 60.0 70.0 5
5 NaN NaN 6
>>>
>>>
>>> cols = ["c1" , "c2"]
>>>
>>> df[df[cols[0]].notnull() | df[cols[1]].notnull()]
c1 c2 P1
0 10.0 20.0 1
1 NaN 40.0 2
2 50.0 NaN 3
4 60.0 70.0 5
如上所示我正在执行一个逻辑,其中我想保留至少有一个非Nan值的行。
问题是列表中的列数可能与列数一样多,例如可能为100或更多。那么我怎么能用pythonic方式执行这个逻辑呢?
答案 0 :(得分:2)
这应该有效:
df.dropna(subset=cols, how='all', inplace = True)
cols
是你的地方:
cols = ["c1" , "c2"]
答案 1 :(得分:1)
试试这个,
df=df.dropna(subset=[col],how='all')