我有一个数据框,其中的列是 float 。某些行具有 NaN 值。
我想查找数字长度(或位数)为 !=6 的行。
我尝试了以下方法:
len(str(df['a'])) != 6
但这似乎只返回一个 bool 值,而不是数据框中每一行的 bool 值。
正确的做法是什么?
更新:
有人发了一个帖子,回答类似于:
df.query('a <= 10**5')
这似乎工作得很好。现在,我想添加一个附加条件,其中 b 列不为空。我如何在 query() 函数中执行此操作。
请您参考如下方法:
将其转换为字符串,然后使用字符串操作。
df['a'].astype(str).str.len()
编辑:对于更完整的版本,您可以使用:
df[(df['a'].fillna(0) < 100000) & (pd.notnull(df[b]))]
