在Python中如何从数据帧中排除非数字整数
我有一个数据帧,它由整型、字符串、数字等数据类型组成。 像下面这样。我想排除所有非数值变量。Python中是否有任何自动化的方法在Python中如何从数据帧中排除非数字整数,python,numpy,scipy,ipython,Python,Numpy,Scipy,Ipython,我有一个数据帧,它由整型、字符串、数字等数据类型组成。 像下面这样。我想排除所有非数值变量。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 ... $ Nam
'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 ...
排除数值变量后,我的数据框应如下所示:
'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 ...
我们可以使用
\u get\u numeric\u data()
或者另一个选项是select\u dtypes()
@hpaulj-如果这不是熊猫,很抱歉。我现在正在从R转换为python。因此,python下的一切对我来说都是全新的。我之所以询问熊猫的问题,是因为该包(构建在numpy之上)使用了“数据框架”术语。在
numpy
中,我们只有统一数据类型的多维数组和混合数据类型字段的结构化数组。可能您应该添加一个R
标记,以便其他有交叉经验的人可以提供帮助。@hpaulj-done。谢谢,我有个问题。在我的数据框架中,我有几个数字变量,它们要么是包含0或1的逻辑值,要么是包含数字值的分类变量。还有什么可以排除的吗?只是出于好奇问一下。R中也有类似的函数吗?@Arun在R
中,如果df1
是data.frame
,我们可以使用df1[sapply(df1,Is.numeric)]
只获取数字列或过滤器(Is.numeric,df1)
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)
df3 = df1.select_dtypes(include = ['int64', 'float64'])
print(df3)