Python 操作Excel之写操作
人总会去追求更好的,分享也是一样,有更好的,怎么能够不分享呢!
下面为大家送来python操作Excel的神来之笔----pandas库废话不多逼逼,直接上干货分享
准备操作:
- 导入python库中的pandas库,这只需一句话便可搞定
import pandas as pd
- 事先准备好一张Excel表,本操作的表为test8.xls,表内容看下图
表格内容:
如下:
![7adab95e4d9918044fa0388e38c892d7.png](https://img-blog.csdnimg.cn/img_convert/7adab95e4d9918044fa0388e38c892d7.png)
pandas操作Excel的常用方法:
直接上代码:
#此处用来学习pandas中的一些常用方法
import pandas as pd
path = 'test8.xls'
#读取表格将其转化成DataFrame的结构类型
df = pd.DataFrame(pd.read_excel(path))
各操作方法及结果展示:
#输出表格的结构信息
df.info()
![587e545b654195a226e26cead0a3f670.png](https://img-blog.csdnimg.cn/img_convert/587e545b654195a226e26cead0a3f670.png)
#查看索引
df.index
![66729ce8dac0c002d09eb12e0d59d91e.png](https://img-blog.csdnimg.cn/img_convert/66729ce8dac0c002d09eb12e0d59d91e.png)
#查看列名
df.columns
![ef3edabd1aa00941b7a7ceea1fecae1f.png](https://img-blog.csdnimg.cn/img_convert/ef3edabd1aa00941b7a7ceea1fecae1f.png)
#查看数据值
df.values
#还可查看类型
print(type(df.values))
![9bd06730ec2c63613303eeea501c1d94.png](https://img-blog.csdnimg.cn/img_convert/9bd06730ec2c63613303eeea501c1d94.png)
#描述性统计
df.describe
![24ce9cfc64554e4ca539d4791d46bec6.png](https://img-blog.csdnimg.cn/img_convert/24ce9cfc64554e4ca539d4791d46bec6.png)
#查看前几行数据,默认是前5行
df.head()
#查看后几行数据,默认是后5行
df.tail()
#以上的截图就省略了
# 删除指定列
df = df.drop(["学号"], axis=1) #需要删除多列,直接在中括号里加
#删完后再查看列名
df.columns
![f733a725f27986530609d4cf4b8d7afe.png](https://img-blog.csdnimg.cn/img_convert/f733a725f27986530609d4cf4b8d7afe.png)
#读取指定的单行,数据会存在列表里面
#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
data=df.ix[[1,2]].values
print(data)
![a8db2d2cc7fb67e09db8db02d8cc7d6f.png](https://img-blog.csdnimg.cn/img_convert/a8db2d2cc7fb67e09db8db02d8cc7d6f.png)
# 输出列名
col_title = df.columns.values
print(col_title)
![05d5a227720cfbd52ae4782294367721.png](https://img-blog.csdnimg.cn/img_convert/05d5a227720cfbd52ae4782294367721.png)
# 输出指定列的值(如姓名列)
name_value = df['姓名'].values
print(name_value)
![a5dac93cd1f42b88ea781b3ae0b57ab5.png](https://img-blog.csdnimg.cn/img_convert/a5dac93cd1f42b88ea781b3ae0b57ab5.png)
# 输出行号并打印
row_num = df.index.values
print(row_num)
![e8240e220373820f5d52af410616b7ab.png](https://img-blog.csdnimg.cn/img_convert/e8240e220373820f5d52af410616b7ab.png)
# 读取指定行并打印
values = df.ix[0].values #表头列名那行不算,序号下标从0开始
print(values)
![04ecd512fe7336dfef6e8961840138b9.png](https://img-blog.csdnimg.cn/img_convert/04ecd512fe7336dfef6e8961840138b9.png)
#直接用print(df['列名'])这样输出的是Series数据结构的类型
name = df['姓名']
print(name)
#查看类型
print(type(name))
![9a53b3f8e70521d7f88e0ec1fc115d84.png](https://img-blog.csdnimg.cn/img_convert/9a53b3f8e70521d7f88e0ec1fc115d84.png)
# 某一列各个计数(合并相同值)
col_counts = df['姓名'].value_counts()
print(col_counts)
![0e65ff74fa82c2f03af648b94a934bd2.png](https://img-blog.csdnimg.cn/img_convert/0e65ff74fa82c2f03af648b94a934bd2.png)
#接上图,比如要输出左右侧的列,并将其转化成列表,需要如何操作呢?(左侧是index,右侧一般是value值)
# 我们要将Series结构类型转化成列表,只需用tolist()方法
name = col_counts.index.tolist()
print(name)
counts_list = col_counts.tolist()
print(counts_list)
![4088f3e50c6a95ba2c6091bdbd4799b7.png](https://img-blog.csdnimg.cn/img_convert/4088f3e50c6a95ba2c6091bdbd4799b7.png)
pandas操作Excel的方法还有很多,不可能在这里把所有都罗列出来,但是上面的都是很常用的,当遇到不会的时,要学会查看官网
官网链接:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html
此次分享到这就结束了。
最后有兴趣一起交流的,可以关注我的公众号:这里你能够学到很实用的技巧,不是常用的,我不说,不定时还会抽奖送出我学过计算机相关专业的书籍福利。敬请期待!!!!
http://weixin.qq.com/r/SUiMlL-EuOLHrfv39x1b (二维码自动识别)