[英]how to exclude the non numerical integers from a data frame in Python
I have a data frame which comprises of datatypes integer, string, numeric etc. Something like below. 我有一个数据框,其中包含整数,字符串,数字等数据类型。如下所示。 I want to exclude all the variables which are non-numeric. 我想排除所有非数字变量。 is there any automated way in Python? Python中有自动的方法吗?
'data.frame': 891 obs. of 12 variables:
$ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
$ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
$ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
$ Name : Factor w/ 891 levels "Abbing, Mr. Anthony",..: 109 191 358 277 16 559 520 629 417 581 ...
$ Sex : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ...
$ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
$ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
$ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
$ Ticket : Factor w/ 681 levels "110152","110413",..: 524 597 670 50 473 276 86 396 345 133 ...
$ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
$ Cabin : Factor w/ 148 levels "","A10","A14",..: 1 83 1 57 1 1 131 1 1 1 ...
$ Embarked : Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ...
After exclusion of numeric variables, my dataframe should look like the below: 排除数字变量后,我的数据框应如下所示:
'data.frame': 891 obs. of 12 variables:
$ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
$ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
$ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
$ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
$ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
$ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
$ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
We could use ._get_numeric_data()
我们可以使用._get_numeric_data()
import pandas as pd #import the pandas library
#creating a small dataset for testing
df1 = pd.DataFrame({'PassengerId' : [1, 2, 3],
'Name' : ['Abbing, Mr. Anthony', 'Ann, C', 'John, H'],
'Fare' : [7.25, 71.28, 7.92]})
#extract only the numeric column types
df2 = df1._get_numeric_data()
print(df2)
Or another option is select_dtypes()
或者另一个选择是select_dtypes()
df3 = df1.select_dtypes(include = ['int64', 'float64'])
print(df3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.