当前位置:   article > 正文

【Pandas学习】读、存excel数据_pandas save excel

pandas save excel

目录

一、读数据

二、将df存为excel

1、pandas.DataFrame.to_csv() 函数语法

2、利用 import os 获取保存路径

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

4、多sheet,指定存入的sheet

5、df.to_csv()出现中文乱码的解决办法

一、读数据

sep:默认以逗号分隔

header:是否包含表头

df = pd.read_csv('data.csv', sep='\t',header=None, names=['var_code','var_name','var_desc'])

二、将df存为excel

1、pandas.DataFrame.to_csv() 函数语法

  1. pandas.DataFrame.to_csv(path_or_buf= None,
  2. sep= ",",
  3. na_rep= "",
  4. float_format= None,
  5. columns= None,
  6. header= True,
  7. index= True,
  8. index_label= None,
  9. mode= "w",
  10. encoding= None,
  11. compression= "infer",
  12. quoting= None,
  13. quotechar= '""',
  14. line_terminator= None,
  15. chunksize= None,
  16. date_format= None,
  17. doublequote= True,
  18. escapechar= None,
  19. decimal= ".")

是否加表头和行索引

  1. index_A = df[df[0] == "<!AAA>"].index.tolist()
  2. df_A = df.iloc[index_A[0]+1:index_A[1], ]
  3. print('索引', index_A)
  4. print(df_A)
  5. df_A.to_csv('AAA.csv', header=False, index=False, encoding='utf-8-sig')

默认情况下保存文件会保存到和当前执行的文件相同的文件夹中

  1. a=np.random.random(100)
  2. a=a.reshape(25,4)
  3. a=pd.DataFrame(a)
  4. a.to_csv('G:\\0py\\result\\a.csv')

注意,路径一定要用双斜杠,用单斜杠会报错,原因未知

2、利用 import os 获取保存路径

  1. import os #获取当前工作路径
  2. import pandas as pd #将数据保存至相应文件中
  3. file = os.getcwd() + '\\1.csv' #保存文件位置,即当前工作路径下的csv文件
  4. data = pd.DataFrame({'a':[1, 2, 3], 'b': [4, 5, 6]}) #要保存的数据
  5. 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、多sheet,指定存入的sheet

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

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

5、df.to_csv()出现中文乱码的解决办法

解决办法:只需在后面加上 encoding='utf_8_sig'

df.to_csv('F:\\test\\688019.csv', index=False, encoding='utf_8_sig')
  1. 'utf-8''utf_8_sig' 的区别:
  2. ”utf-8“ 是以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序问题,因此它不需要BOM,所以当用"utf-8"编码方式读取带有BOM的文件时,它会把BOM当做是文件内容来处理。
  3. "uft-8-sig"中sig全拼为 signature 也就是"带有签名的utf-8", 因此"utf-8-sig"读取带有BOM的"utf-8文件时"会把BOM单独处理,与文本内容隔离开。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/576343
推荐阅读
相关标签
  

闽ICP备14008679号