python中的数据写入(to_csv)、将结果写入excel多个sheet中(to_excel)

       很多情况下,大家可能会遇到相同情况,就是现在有一些数据需要保存在某个文件里面,但是后续会不断更新添加新的数据,例如在爬虫的时候,一页一页爬取数据的时候,当然可以将所有页数据先合并到一起,再保存起来,但是也可以通过下文这种方式,输出一页的数据就保存一次,好像有点麻烦哈,但是如果是其他情况的话,可能就会便捷一点,例如数据更新不是很快这种情况等等。

1、引入模块

1 import os    #获取当前工作路径
2 import pandas as pd   #将数据保存至相应文件中

2、将数据保存至制定文件下

1 file = os.getcwd() + '\\1.csv'    #保存文件位置,即当前工作路径下的csv文件
2 data = pd.DataFrame({'a':[1, 2, 3], 'b': [4, 5, 6]})  #要保存的数据
3 data.to_csv(file, index=False)   #数据写入,index=False表示不加索引

3、产生新的数据,添加至上述csv文件中已有数据的后面

1 #新数据,与data具有相同的和列与列名
2 data2 = pd.DataFrame({'a':[7, 8, 9], 'b': [1, 2, 3]})
3 #保存至file文件中,index=False表示文件中不添加索引,header=False表示不添加列名,mode='a+'表示在已有数据基础上添加新数据,并不覆盖已有数据
4 data2.to_csv(file, index=False, mode='a+', header=False)

4、将数据保存至同一excel不同sheet中

 直接用pd.to_excel()指定sheet_name时,即使指定sheet_name也没用,后一次的写入数据会覆盖前一次写入的数据,解决方法如下,借助pandas中的ExcelWriter方法;

 1 # 方法1,推荐方法
 2 with pd.ExcelWriter('test.xlsx') as writer:
 3     data.to_excel(writer, sheet_name='data')
 4     data2.to_excel(writer, sheet_name='data2')
 5 
 6 # 写法2
 7 writer = pd.ExcelWriter('test.xlsx')
 8 data.to_excel(writer, sheet_name='data')
 9 data.to_excel(writer, sheet_name='data2')
10 writer.save()
11 writer.close()

 

posted @ 2019-04-26 20:14  beyondChan  阅读(57491)  评论(0编辑  收藏  举报