首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python中的datatype (寻找类似于R中的str )

python中的datatype (寻找类似于R中的str )
EN

Stack Overflow用户
提问于 2015-11-14 02:56:08
回答 2查看 170关注 0票数 4

我想在python中找到csv文件中所有变量的数据类型。在R中,我们可以使用str()命令实现相同的目标。

代码语言:javascript
运行
复制
str(data_frame)

这给出了这样的输出

代码语言:javascript
运行
复制
> str(train)
'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 ...

蟒蛇也有类似的方式吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-14 06:19:55

你可能想要dtypes

代码语言:javascript
运行
复制
>>> import pandas as pd
>>> df = pd.DataFrame({'foo': [1, 2, 3], 'bar': [1.0, 2.0, 3.0], 'baz': ['qux', 'quux', 'quuux']})
>>> df.dtypes
bar    float64
baz     object
foo      int64
dtype: object
票数 3
EN

Stack Overflow用户

发布于 2015-11-14 03:19:33

判断字符串是否代表有效int的一种简单方法是,尝试将字符串转换为int,如果该字符串不是合法int,则捕获ValueError异常。与float类似。下面是Python 2中的一个简单演示:

代码语言:javascript
运行
复制
data = 'string 37 3.14159 word -5 0 -1.4142 text'

def datatype(s):
    try:
        int(s)
    except ValueError:
        try:
            float(s)
        except ValueError:
            return 'string'
        else:
            return 'float'
    else:
        return 'int'

for s in data.split():
    print '%-15r: %s' % (s, datatype(s))

输出

代码语言:javascript
运行
复制
'string'       : string
'37'           : int
'3.14159'      : float
'word'         : string
'-5'           : int
'0'            : int
'-1.4142'      : float
'text'         : string

但是,普通Python代码(通常)不会使用类似的函数:它将假设数据是正确的,并将转换代码包装在一个简单的try: ... except ValueError:... else:块中,而不是在准备处理数据之前使用疯狂的嵌套结构来测试数据。

合理的CSV在随机位置上不会有不同的数据类型,所以您的代码不需要猜测给定字段中的数据类型。不是所有的CSV都设计得很好.:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33704655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档