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')