我正在尝试 dropna(),已阅读文档。
我创建了一个示例数据框来使用:
col1 col2 col3 col4
0 a 1.0 2.0 3
1 b NaN NaN 6
2 c NaN 8.0 9
3 d NaN 11.0 12
4 e 13.0 14.0 15
5 f 17.0 18.0 19
6 g 21.0 22.0 23
Run Code Online (Sandbox Code Playgroud)
现在我遇到的问题是参数 thresh 以及将列表传递到参数轴。
a) Threshhold 被忽略并且 dropna() 不在任何行中运行
df.dropna(thresh=1)
Run Code Online (Sandbox Code Playgroud)
和 df.dropna(thresh=2) 都返回未更改的原始 df 。
b) 传递给 axis 参数的列表指示 dropna() 应在两个轴上同时操作,该列表将被忽略。选择轴 0,这是默认值。
df.dropna(axis=[0,1])
Run Code Online (Sandbox Code Playgroud)
返回:
col1 col2 col3 col4
0 a 1.0 2.0 3
4 e 13.0 14.0 15
5 f 17.0 18.0 19
6 g 21.0 22.0 23
Run Code Online (Sandbox Code Playgroud)
我仔细阅读了文档,并在 stackoverflow 上研究了该主题,但我仍然无法弄清楚我做错了什么。
我们将不胜感激您的建议。
dropna正在按预期工作。
对于您的第一个语句 a)df.dropna(thresh=1)迭代所有行并保留至少具有 1 个非 na值的每一行。所有行都至少有一个非 na 值,因此不会删除任何内容。thresh=2当- 所有行至少有 2 个非 na 值时也是如此。
对于你的第二个问题df.dropna(axis=[0,1]):列表的顺序很重要。在这里,行将在列之前先被删除。