将数据帧写入给定路径的excel文件

时间:2016-08-10 21:52:36

标签: python excel pandas

I have a dataframe 
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

This is working :
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()

but when I try 
out_path = "C:\Users\Bala\output\temp-excel.xlsx"
writer = pd.ExcelWriter(out_path , engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()

我收到错误:IOError:[Errno 22]无效模式(' wb')或文件名:' C:\ Users \ Bala Nadella \ output \ temp-excel。 XLSX&#39 ;.

如何在给定路径中创建文件。

2 个答案:

答案 0 :(得分:9)

String literals

研究该链接中的表格。你需要逃避你的' \'用' \\'。部分地,DOS是造成这个世界混乱的原因。

out_path = "C:\\Users\\Bala\\output\\temp-excel.xlsx"

或者

out_path = r"C:\Users\Bala\output\temp-excel.xlsx" # the `r` prefix means raw string

但最好的选择是:

out_path = "C:/Users/Bala/output/temp-excel.xlsx"

它适用于任何平台。

已修改为使用os.path.abspath删除解决方案。在这个回答下面的评论之后,我自己阅读了文档,并意识到它有不同的目的。虽然我过去使用它来使我的代码对操作系统友好,因为它巧妙地将CWD添加到路径中,并在从Debian移动到Windows时将/更改为\\,反之亦然。

答案 1 :(得分:4)

在字符串中,反斜杠是转义字符。这意味着你要给出一个特殊的命令,而不是一个普通的角色。例如。 "Hello\nWorld"表示在"Hello""World"之间添加换行符。

如果您确实想要使用反斜杠作为字符,请将其键入"\\"

或者更好的是,只需使用正斜杠!