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