最后一次更新日期: 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
方法。