自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

S_o_l_o_n的博客

Contact me: jt_solon@163.com

  • 博客(9)
  • 收藏
  • 关注

原创 pandas输出csv文件用Excel打开中文乱码问题

pandas的to_csv方法默认输出编码方式为uft8,但是是无BOM格式的,但是对于excel软件,其对于utf8编码方式,只支持有BOM格式的,因此直接输出csv文件使用无BOM格式的utf8编码格式的,这时用excel软件打开后会出现中文乱码问题。当然这时excel软件本身不支持无BOM的utf8编码,如果用文本编辑器或者notepad++等支持无BOM的utf8编码方式的编...

2019-05-31 22:22:04 5558 1

原创 利用正则表达式模块re对字符串进行过滤和处理

python标准库中的re模块是正则表达式模块,本文主要讲几个最常用的方法以帮助日常最常碰到的关于字符串的过滤和处理。一、对于字符串开头匹配有时我们需要选取以特定特征开头的字符串,特别是在I/O时,我们常需要对一些非结构化的字符串进行逐行过滤,选取符合开头要求的行,这时可以利用re.match(rexp,string),其中rexp表示正则表达式的匹配模式,string表示被...

2019-05-28 22:27:21 1864

原创 为什么十进制浮点数常常无法用二进制精确表示?

十进制浮点数很好理解,就是我们日常所见的数字,比如3.3,2.56等数字,都是十进制的。那么,二进制小数该如何表示呢? 首先,我们先看下整数,对于十进制整数10,用二进制表示就是1010=1*2^3+0*2^2+1*2^1+0*2^0,所以对于整数,十进制和二进制之间的转化还是挺直接的。那么对于小数,该如何转化呢? 比如,对于3.3,如何转化为二进制表...

2019-05-27 22:39:00 3886

原创 python四舍五入运算产生误差的原因以及实现精确四舍五入的方法

由于python中,数字都是用二进制方式储存的,所以当我们直接输入一个十进制的浮点数,比如3.675,其并无法精确的用二进制表示或储存,只能以一定精度进行近似表示。这时,如果我们需要对其做一些运算,比如四舍五入,由于实际操作的对象是二进制浮点数,而二进制浮点数常常又无法精确的表示十进制浮点数,这时就会存在误差。看如下例子。 可以看到,当我们直接用round函数对3...

2019-05-27 22:04:03 3227

原创 将DataFrame的多列设为多层次索引

对于一个DataFrame,df,有时候我们需要把df的两个或多列设为这个df的层次索引,但是同时又希望保留这两列,这时要避免直接用df.index=df[['a','b']]这样的方式,因为这样赋值之后,df的index并不是一个层次索引,而是以列'a','b'组成的元组构成的单层次索引。要实现这样的多层次索引,有以下几种方式:1、df.set_index(['a','b'],...

2019-05-27 21:30:19 8520

原创 在DataFrame中新建列赋值后全部为NaN的问题释疑

在pandas中,有时候我们对一个df以如下方式新创建一个列,然后用一个Series赋值给新建的列,但是发现得到的新列的值全部为NaN,这是什么原因呢?df['newColumn']=df_other['otherColumn'] 注意以上赋值方式中,等号右边为一个Series,这时就需要考虑这个Series的index和df的index是否一致,如果不一致,那...

2019-05-20 22:00:41 16856 6

原创 pandas性能提升之避免SettingWithCopy

pandas中,当你用了如下赋值方式时,往往会抛出一个warning,SettingWithCopy warning。这个warning的原因在于,如果你用了如下赋值,则脚本可能会在内存里先创建一个df['a']的copy,然后再进行索引后的赋值,赋值后再将新的值赋给原df对象,这样就涉及到了两次链式赋值。至于为什么是可能会,而不是一定会,是因为这个copy的创建会由这个对象在内存位...

2019-05-20 21:51:45 460

原创 如何在Python脚本中识别文件的编码方式

在Python的第三方库中,有一个叫chardet的库,可以用来识别文件或者网页数据的编码方式,然后再根据相应的编码方式进行解码。一般的,对于单个静态文件,我们可以通过一些编辑软件打开直接看其编码方式,但是有时候对于需要和脚本动态交互的,或者是多个文件,且其编码方式并不一定,则就需要通过在脚本中判断其编码方式,然后指定解码方式对其解码。 利用chardet,可以用如下...

2019-05-05 20:48:27 1529

原创 UnicodeDecodeError: 'utf8' codec can't decode byte 0xd1 in position 0: invalid continuation byte解决办法

出现这个问题,首先就是检查源文件的编码方式是不是utf8,这个可以用vscode或者notepad++打开后直接看编码方式,当然也可以用其他方法查看。如果不是utf8编码方式,则自然不能用utf8解码,对此只需要把编码参数设置成对应的编码方式即可。 当然,上面说的是最简单基本的解决方式,一般遇到上述问题,如果用各种编辑软件打开源文件后显示的编码方式就是utf8,但是尽...

2019-05-05 20:31:19 10334

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除