【发布时间】:2021-01-25 16:09:41
【问题描述】:
在 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
我们只会删除一些数字列(浮点数)为 NaN 的行,而那些非数字列(对象)为 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 和管道。 任何可以提供提示的人将不胜感激!
非常感谢!
【问题讨论】:
-
这能回答你的问题吗? better way to drop nan rows in pandas
-
使用
subset。df.dropna(subset=['B(Float)', 'D(Float)']).
标签: python pandas data-science