https://pandas.pydata.org/docs/user_guide/basics.html#dtypes
概念
1)按大类型分
类型 | 类型对象 | 类型创建 | 简称 |
---|---|---|---|
数字 | Int64Dtype,… | 直接写 | ‘Int8’, ‘Int16’, ‘Int32’, ‘Int64’, ‘UInt8’, ‘UInt16’, ‘UInt32’, ‘UInt64’,float16, float32, float64, float128 |
时间 | DatetimeTZDtype | Timestamp | datetime64[ns, <tz>] ,timedelta64[ns] |
字符串 | StringDtype | str | ‘string’ |
布尔 | BooleanDtype | bool | ‘boolean’ |
2)按小类型分
numeric类型缺失值是np.NaN
而datetime和timedelt类型的缺失值是pd.NaT
,这是两个特殊的值.不能用来做布尔等值判断,也即是说np.NaN == np.NaN
返回值为False,pd.NaT
也是一样的.
np.NaN
可以转换为None
,而pd.NaT
不能转换为None
类型 | 缺失值 | 描述 |
---|---|---|
int | np.NaN | int8, int16, int32, int64 |
float | np.NaN | |
bool | bool | |
object | string | |
timedelta | pd.NaT | |
datatime | pd.NaT | datetime64[ns] |
转换
pandas使用object类型存储字符串,如果一列有多个类型,也是用object存储,这时每个单元格保持自己的类型
没有str
类型,需要使用astype('str''')
来转换,
数据转换 | 描述 |
---|---|
to_numeric() | 转换为numeric类型(int,float),然后通过astype 转换为bool类型 |
to_datetime() | 转换为datetime类型(datetime64[ns]),就是时间戳 |
to_timedelta() | 转换为timedelta(timedelta64[ns]) |
astype(‘object’) | 转换为字符串类型 |
使用转换函数可以传递error
参数,
参数值 | 描述 |
---|---|
errors=‘raise’ | 默认,任何转换错误都会终止 |
errors=‘coerce’ | 忽略错误,并将有问题的数据进行如下转换:时间格式转换为pd.NaT ,numeric转换为np.nan |
errors=‘ignore’ | 忽略错误,并且不做任何转换 |
https://pandas.pydata.org/pandas-docs/stable/getting_started/basics.html#defaults