【发布时间】:2021-08-21 09:40:50
【问题描述】:
我有以下数据框列表。我需要从每个 df 中删除包含 only 值 NaN 或 零的行。我无法将所有零更改为 NaN,因为在其他列中,它们具有有效含义,而不是反映缺失/不是数字信息。理想情况下,我想以这种格式组合命令 [x.dropna(axis=0, how='all') for x in dfs]。谢谢!
数据
df1 = pd.DataFrame(data={'id':[1,2,0,4,5,6],
'a': [41,41,0,43,40,41],
'b': [21,20,0,19,23,23],
'c': [0,0,0,0,43,0],
'd': [12,11,0,0,0,0]})
df2 = pd.DataFrame(data={'id':[0,2,0,4,5,6],
'a': [0,41,0,43,40,41],
'b': ['NaN',20,'NaN',19,23,23],
'c': [0,0,0,0,43,0],
'd': [0,11,0,0,0,0]})
df3 = pd.DataFrame(data={'id':[1,2,'NaN','NaN',5,0],
'a': [41,41,0,43,40,0],
'b': [21,20,0,19,23,0],
'c': [0,0,0,0,43,0],
'd': [12,11,0,0,0,0]})
dfs = [df1,df2,df3]
预期输出
[ id a b c d
0 1 41 21 0 12
1 2 41 20 0 11
2 4 43 19 0 0
3 5 40 23 43 0
4 6 41 23 0 0,
id a b c d
0 2 41 20 0 11
1 4 43 19 0 0
2 5 40 23 43 0
3 6 41 23 0 0,
id a b c d
0 1 41 21 0 12
1 2 41 20 0 11
2 NaN 43 19 0 0
3 5 40 23 43 0
4 0 0 0 0 0]
【问题讨论】: