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