Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选中一列';s数据类型,如果不是数字,则返回Python中的指示_Python_Python 3.x_Pandas_Numpy_Dataframe - Fatal编程技术网

选中一列';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