[python][科学计算][pandas]简要使用教程2-数据类型与转换

最后一次更新日期: 2019/3/17

pandas是基于numpy的数据分析库,提供一些更易用的数据模型和大量高效的统计方法。

使用前先导入模块:
import pandas as pd
按需导入以下模块:
import numpy as np
import matplotlib.pyplot as plt

1. 数据类型

pandas支持的数据类型就是numpy的数据类型,在创建数据模型时同样可通过dtype参数指定。

常用的数据类型有:np.bool_(bool),np.int64(int),np.float64(float),np.datetime64(datetime),object(str等),pd.Categorical(category)。

更详细的类型说明可查看numpy的使用指南。
和numpy不太一样的是,numpy中int类型默认为np.int32,而pandas中默认np.int64;numpy中存储字符串优先采用定长的np.str_,而pandas中统一使用object

pandas数据模型使用单个ndarray作为基础数据,所以当pandas的每列采用不同数据类型时,作为数据来源的ndarray整体被设置为object数据类型。

2. 类型转换

In [48]: df=pd.DataFrame([[1,'2'],[3,'a']],columns=['col1','col2'])

In [49]: df.dtypes
Out[49]: 
col1     int64
col2    object
dtype: object

In [50]: df.col1.astype('float')
Out[50]: 
0    1.0
1    3.0
Name: col1, dtype: float64

In [52]: pd.to_numeric(df.col2,errors='ignore')
Out[52]: 
0    2
1    a
Name: col2, dtype: object

In [53]: pd.to_numeric(df.col2,errors='coerce')
Out[53]: 
0    2.0
1    NaN
Name: col2, dtype: float64

pandas和numpy一样主要使用astype进行类型转换,该方法返回转换后数据,需要在原数据上更改时可以用返回值去覆盖原数据。

当需要进行一些可能会失败的转换时,可以考虑使用专用的方法,例如pd.to_numeric用于将一个Series转换为数字类型,errors参数可以指定对错误的处理方式:'coerce'表示强制转换,不能转换的元素会替换为NaN'ignore'表示存在无法转换的元素时会放弃转换。
当需要对DataFrame整体应用转换时,可使用apply方法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容