最近在学习《利用python进行数据分析》,在案例实战过程和使用pandas库中还存在着许多问题没有解决,这里进行总结。
一、SettingwithCopyWarning问题
如上图所示,出现如上所示的警告,这里推荐一篇文章:https://www.jianshu.com/p/72274ccb647a
这篇文章很详细的解释了出现的原因及解决方案,这是一个链式索引的问题。
二、读取以 ::为分隔符的csv文件时出现警告
这个警告的大概意思就是告诉你:因为“c”引擎不支持正则表达式分隔符(分隔符>1个字符且不同于“\s+”的分隔符被解释为正则表达式),可以通过指定engine=”python“这个参数来避免此警告。具体的可以复制到翻译软件。因为Python语言底层是采用C语言实现的,可以简单理解为Python是用C写出来的。这需要大佬进行相关解释,我也不是很理解这个意思。这里将代码改为:
df1=pd.read_csv("movies.dat",sep='::',header=None,engine="python",names=mnames)
就行了,这也是《利用python进行数据分析》书中的一个实例。
三、将DataFrame写入excel
将dataframe写入excel可以用pandas的to_excel(path,sheet1)path为路径,sheet1为表格名称。但如果要将多个dataframe写入同一个excel文件,需要用到ExcelWriter()方法
import pandas as pd
#首先创建两个dataframe
frame=pd.DataFrame({"data1":random.randn(5),
"data2":random.randn(5),
"key1":["a","a","b","b","a"],
"key2":["one","two","one","two","one"]})
frame2=frame.copy()
writer=pd.ExcelWriter("test.xls")
frame.to_excel(writer,"frame")
frame2.to_excel(writer,"frame2")
writer.save()
这里创建了两个dataframe,将其写入text文件,并将两个表格的名称分别命名为frame和frame2。注意最后要执行 writer.save()代码,不然不会创建文件,只是在缓存中。
如果要将多个dataframe写入同一张表格,可以利用startcol和startrow这两个参数来实现
writer=pd.ExcelWriter("test.xls")
frame.to_excel(writer,startrow=2)
frame2.to_excel(writer,startrow=18,startcol=18)
writer.save()
#startrow代表写入的起始行,startcol代表写入的起始列
四、dataframe转置
dataframe也有类似于numpy数组类似的转置操作。