重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“python数据分析之怎么用pandas搞定Excel表格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python数据分析之怎么用pandas搞定Excel表格”吧!
创新互联于2013年创立,先为南丹等服务建站,南丹等地企业,进行企业商务咨询服务。为南丹企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
接下来我们读取三类文件csvtsvtxt文件,值得注意的是读取这三类文件时使用的都是同一个方法,即pd.read_csv(file),在读取时为excel表时需注意分隔符,使用参数sep=''来分隔。接下来我们一起看看在excel和pandas种如何操作的吧!
从excel中导入外部数据
导入csv文件时,分隔符选择逗号即可。
导入tsv文件,分隔符选择tab键
导入txt文件时,注意文本里是以什么符号分隔的,自定义分隔符。
在pandas中为无论是读取csv文件还是tsv文件亦或者txt文件,都是用read_csv()的方法读取,另外加上sep()参数来分隔。
import pandas as pd # 导入csv文件 test1 = pd.read_csv('./excel/test12.csv',index_col="ID") df1 = pd.DataFrame(test1) print(df1)
tab键用\t来表示
import pandas as pd # 导入tsv文件 test3 = pd.read_csv("./excel/test11.tsv",sep='\t') df3 = pd.DataFrame(test3) print(df3)
import pandas as pd # 导入txt文件 test2 = pd.read_csv("./excel/test13.txt",sep='|') df2 = pd.DataFrame(test2) print(df2)
结果:
在excel中存在多种数据,且分为很多类型,这时使用数据透视表就会很方便也很直观的为我们分析出各种我们想要的数据了。
实例:将下列数据绘制成一个透视表,并绘制出按总类分每年的销售额!
需要按照年份来分,则我们需要将date列拆分,把年份拆分出来。随后在数据栏下选择数据透视表,选择区域即可。
随后将各部分数据拖动到各区域即可。
结果:
这样就在excel中完成了数据透视表的制作。
那么在pandas中要怎么实现这一效果呢?
绘制透视表的函数为:df.pivot_lable(index,columns,values),最后将数据求和即可。
import pandas as pd import numpy as np pd.options.display.max_columns =999 test = pd.read_excel('./excel/test14.xlsx') df = pd.DataFrame(test) # 将年份取出并新建一个列名为年份的列 df['year'] = pd.DatetimeIndex(df['Date']).year # 绘制透视表 table = df.pivot_table(index='总类',columns='year',values='销售额',aggfunc=np.sum) df1 = pd.DataFrame(table) df1['总计'] = df1[[2011,2012,2013,2014]].sum(axis=1) print(df1)
结果:
除此之外还可以利用groupby函数来绘制数据表。这里将总类和年份分组求销售总额和销售数量。
import pandas as pd import numpy as np pd.options.display.max_columns =999 test = pd.read_excel('./excel/test14.xlsx') df = pd.DataFrame(test) # 将年份取出并新建一个列名为年份的列 df['year'] = pd.DatetimeIndex(df['Date']).year # groupby方法 group = df.groupby(['总类','year']) s= group['销售额'].sum() c = group['ID'].count() table = pd.DataFrame({'sum':s,'total':c}) print(table)
结果:
到此,相信大家对“python数据分析之怎么用pandas搞定Excel表格”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!