Pandas - 排除数字列为 NaN 的行
Pandas - 排除数字列为 NaN 的行
这个问题已经有了答案:
在Pandas的数据框中,有一些是数值型的列,有一些行在其中的某一个数值型的列是NaN。
我知道如何选择这些数值型的列:
df.select_dtypes(include=np.number)
但是如何排除那些其中一个数值型的列的值是NaN的行呢?
很抱歉我的描述可能不够清晰,所以我添加了更多的细节来澄清它。希望能更清楚。
假设有如下数据框:
有四列:A、B、C和D。A和C的数据类型为Object,B和D的数据类型为Float。
A(Object) B(Float)C(Object) D(Float) Apple NaN String1 1.0 Orange 2.0 NaN 3.0 Banana 4.0 String2 5.0 NaN 1.0 String3 2.0 Pear NaN String4 3.0 Melon 2.0 String5 NaN
我们将仅删除那些某些数值型列(float)为NaN的行,那些非数值类型列(Object)为NaN的行不应该被删除。
最终结果如下:
A(Object) B(Float)C(Object) D(Float) Orange 2.0 NaN 3.0 Banana 4.0 String2 5.0 NaN 1.0 String3 2.0
我考虑使用lambda和pipeline的方式。任何能给出提示的人都将不胜感激!
非常感谢!
admin 更改状态以发布 2023年5月21日