之类的优雅功能
df[~pandas.isnull(df.loc[:,0])]
可以检查pandas DataFrame列并返回整个DataFrame,但要删除所选列中的所有NaN值行。
我想知道是否有类似的函数可以检查并返回以dtype为条件的df列,而无需使用任何循环。
我看过
.select_dtypes(include=[np.float])
但是这只会返回完全具有float64值的列,而不是具有浮点数的列中的每一行。
答案 0 :(得分:0)
首先,让我们设置一个包含两列的DataFrame。仅列b具有浮点数。我们将尝试找到此行:
df = pandas.DataFrame({
'a': ['qw', 'er'],
'b' : ['ty', 1.98]
})
打印时,外观如下:
a b
0 qw ty
1 er 1.98
然后创建一个地图,以使用apply()
def check_if_float(row):
return isinstance(row['b'], float)
map = df.apply(check_if_float, axis=1)
这将给出在b列中具有浮点数的所有行的布尔映射:
0 False
1 True
然后您可以使用此地图选择所需的行
filtered_rows = df[map]
在b列中只留下包含浮点数的行:
a b
1 er 1.98