您可以使用以下方法绘制真/假比较 isnumeric()
>>> df
A B
0 1 1
1 NaN 6
2 NaN NaN
3 2 2
4 NaN NaN
5 4 4
6 some some
7 value other
Run Code Online (Sandbox Code Playgroud)
>>> df.A.str.isnumeric()
0 True
1 NaN
2 NaN
3 True
4 NaN
5 True
6 False
7 False
Name: A, dtype: object
# df.B.str.isnumeric()
Run Code Online (Sandbox Code Playgroud)
apply()
如果您需要角到角比较,方法似乎更健壮:
DataFrame 有两个不同的列,一个是混合类型,另一个是数字,仅用于测试:
>>> df
A B
0 1 1
1 NaN 6
2 NaN 33
3 2 2
4 NaN 22
5 4 4
6 some 66
7 value 11
Run Code Online (Sandbox Code Playgroud)
结果:
>>> df.apply(lambda x: x.str.isnumeric())
A B
0 True True
1 NaN True
2 NaN True
3 True True
4 NaN True
5 True True
6 False True
7 False True
Run Code Online (Sandbox Code Playgroud)
让我们考虑以下具有不同数据类型的数据框,如下所示..
>>> df
num rating name age
0 0 80.0 shakir 33
1 1 -22.0 rafiq 37
2 2 -10.0 dev 36
3 num 1.0 suraj 30
Run Code Online (Sandbox Code Playgroud)
基于 OP 对此答案的评论,其中包含负值和 0。
1- 这是一种仅返回数字类型数据的伪内部方法。
>>> df._get_numeric_data()
rating age
0 80.0 33
1 -22.0 37
2 -10.0 36
3 1.0 30
Run Code Online (Sandbox Code Playgroud)
或者
2- 可以选择使用select_dtypes
模块 pandas.core.frame 中的方法,该方法根据 column 返回 DataFrame 列的子集dtypes
。可以Parameters
与include, exclude
选项一起使用。
>>> df.select_dtypes(include=['int64','float64']) # choosing int & float
rating age
0 80.0 33
1 -22.0 37
2 -10.0 36
3 1.0 30
>>> df.select_dtypes(include=['int64']) # choose int
age
0 33
1 37
2 36
3 30
Run Code Online (Sandbox Code Playgroud)
您可以检查使用to_numeric
和强制错误:
pd.to_numeric(df['column'], errors='coerce').notnull().all()
Run Code Online (Sandbox Code Playgroud)
对于所有列,您可以遍历列或仅使用 apply
df.apply(lambda s: pd.to_numeric(s, errors='coerce').notnull().all())
Run Code Online (Sandbox Code Playgroud)
例如
df = pd.DataFrame({'col' : [1,2, 10, np.nan, 'a'],
'col2': ['a', 10, 30, 40 ,50],
'col3': [1,2,3,4,5.0]})
Run Code Online (Sandbox Code Playgroud)
产出
col False
col2 False
col3 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
如果所有列都是数字,这将返回 True,否则返回 False。
df.shape[1] == df.select_dtypes(include=np.number).shape[1]
Run Code Online (Sandbox Code Playgroud)
要选择数字列:
new_df = df.select_dtypes(include=np.number)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5915 次 |
最近记录: |