pandas数据类型
https://www.jb51.net/article/139630.htm
文件路径有中文或者文件里面 有中文字
mydata
=
pd.read_csv(u
"例子.csv"
,encoding
=
"gbk")#
gb2312 or gb18030
Pandas中进行数据类型转换有三种基本方法:
- 使用astype()函数进行强制类型转换
- 自定义函数进行数据类型转换
- 使用Pandas提供的函数如to_numeric()、to_datetime()
当待转换列中含有不能转换的特殊值时(例子中¥,ErrorValue等)astype()函数将失效。有些时候astype()函数执行成功了也并不一定代表着执行结果符合预期(神坑!)
总结一下astype()函数有效的情形:
- 数据列中的每一个单位都能简单的解释为数字(2, 2.12等)
- 数据列中的每一个单位都是数值类型且向字符串object类型转换
如果数据中含有缺失值、特殊字符astype()函数可能失效。
在读取数据时就对数据类型进行转换,一步到位
data2
=
pd.read_csv(
"data.csv"
,
converters
=
{
'客户编号'
:
str
,
'2016'
: convert_currency,
'2017'
: convert_currency,
'增长率'
: convert_percent,
'所属组'
:
lambda
x: pd.to_numeric(x, errors
=
'coerce'
),
'状态'
:
lambda
x: np.where(x
=
=
"Y"
,
True
,
False
)
},
encoding
=
'gbk'
)