选中一列';s数据类型,如果不是数字,则返回Python中的指示
给定一个小数据集,如下所示:选中一列';s数据类型,如果不是数字,则返回Python中的指示,python,python-3.x,pandas,numpy,dataframe,Python,Python 3.x,Pandas,Numpy,Dataframe,给定一个小数据集,如下所示: id floor 0 1 5 1 2 4 2 3 3 3 4 2 4 5 1 5 6 B1 6 7 B2 7 8 B3 我想检查floor列的内容是否都是数字,对于不是数字的单元格,然后通过添加新列无效floor返回指示 df['floor'].map(type).unique() Out[259]: array([<class 'str'>], dtype
id floor
0 1 5
1 2 4
2 3 3
3 4 2
4 5 1
5 6 B1
6 7 B2
7 8 B3
我想检查floor
列的内容是否都是数字,对于不是数字的单元格,然后通过添加新列无效floor
返回指示
df['floor'].map(type).unique()
Out[259]: array([<class 'str'>], dtype=object)
df['floor'].dtype
Out[260]: dtype('O')
我如何使用np.where
或其他方法来实现这一点?谢谢。使用:
或使用编号为的\d+
:
df['check'] = np.where(df['floor'].str.match('\d+'), None, 'invalid floor')
谢谢,有没有可能
df['check']=np.where(条件,'invalid floor',None)
,这样的代码?@ahbon-是的,如果添加~
像df['check']=np.where(~df['floor'].str.isdigit(),'invalid floor',None)
df['check'] = np.where(df['floor'].str.isdigit(), None, 'invalid floor')
df['check'] = np.where(df['floor'].str.match('\d+'), None, 'invalid floor')
print (df)
id floor check
0 1 5 None
1 2 4 None
2 3 3 None
3 4 2 None
4 5 1 None
5 6 B1 invalid floor
6 7 B2 invalid floor
7 8 B3 invalid floor