对于我这种小白来说,第一次导入个 excel 都会哭!!!
整了很久才有点头绪,经不住太菜了。
以下是为自己准备的日记,以及一些坑。
import pandas as pd
import numpy as py
with open ( r'C:\Users\richa\Desktop\2019-05-31to2019-06-29keywordeffectreport.xlsm') as f:
f.read()
1.首先,怎么快速复制文件的路径,这个我都查了好久,对于新手的我来说,苦逼啊。
终于在我的努力下!! 找到了一个好方法:
1.点击一下文件
2.按住shift
3.右键出现找到,复制路径:C:\Users\richa\Desktop\2019-05-31to2019-06-29keywordeffectreport.xlsm
导入开始,用with open对吧,不用担心关闭file
然后,就崩了,崩了! 崩了。。。。。。
显示的都是什么:
gb18030' codec can't decode byte 0xc4 in position 89: illegal multibyte sequence
我可拉倒吧,什么各种,编码错误,不管是什么,’ utf-8’, ‘gbk’,‘gb18030’,啥都不好使
据说一般来说,如果文件中有中文,会导致编码紊乱,那时候就要用encoding =‘某某某’,来解决:
with open ( r'C:\Users\richa\Desktop\2019-05-31to2019-06-29keywordeffectreport.xlsm','r',encoding='gb18030') as f:
.....
我不就是列里有中文么??????
我就气得删除了中文列,换了如下:
import pandas as pd
import numpy as np
%xmode Plain
f = pd.read_excel(r"C:\Users\richa\Desktop\2019-05-31to2019-06-29keywordeffectreport.xlsm")
这多好啊,记住了 !
f = pd.read_excel(r'path')
注意了,一定要有个r, 不过也有别方式,\换成//什么的,那个可以自己查。
这里path 就是你之前复制的路径
然后又遇见问题了,dataframe格式中的最后一列是period,但是value都是 ’21.04h’ 这种形式,输入 f.peiod.dtype 查看类型一看: object(对象)
哦豁,我想要的是**21.04(float)**形式咋办???
因为进行数据分析,要的起码是数值吧!!!
目标:’ 20.01h’ --> 20.1
思路:
f = f.period = pd.DataFrame(f.period , dtype = np.float)
k=0
for i in f.period:
a=list(i)
a[a.index("h")]=''
f.period[k]=("".join(a))
k=k+1
f.period = pd.DataFrame(f.period , dtype = np.float)
f.info()
结果如下:
最终解决问题!!!!
具体细节,写得太累,暂时不写了。。