编写excel文件,Python中的.xlsx格式

时间:2017-05-29 18:20:23

标签: python pandas xlsx xlsxwriter

我从大数据框架开始,经过一些数据挖掘工作后,我需要将其缩小为2张文件并在...之后写入文件 这个问题涉及写作部分,更确切地说,如果我使用:

#write the files:

# first file:
# Specify a writer
writer = pd.ExcelWriter('example1.xlsx', engine='xlsxwriter')

# Write your DataFrame to a file     
df11.to_excel(writer, 'Sheet1')
df12.to_excel(writer, 'Sheet2')
# Save the result 
writer.save()

我获得了为所有列分配的相同维度,即使它们是由数字或文本组成的。出于某种原因,我得到了另一个列,其中包含前一个文件中的行nr,尽管事实上如果我在Rodeo中可视化文件看起来很好......

写作前的文件:

enter image description here

写完后的文件:

enter image description here

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:5)

pandas不会为您执行列宽(或样式)。但它确实提供了通过访问xlsxwriter来自行应用这些方法的方法。要设置列的宽度,您可以执行以下操作:

代码:

# make wide column wide
workbook = writer.book
worksheet = workbook.worksheets()[1]
worksheet.set_column('B:B', 24)

测试代码:

# Specify a writer
writer = pd.ExcelWriter('example1.xlsx', engine='xlsxwriter')

df1 = pd.DataFrame([1], columns=['A'])
df2 = pd.DataFrame(['My data'], columns=['This is a very wide column'])

# Write your DataFrame to a file
df1.to_excel(writer, 'Sheet1')
df2.to_excel(writer, 'Sheet2')

# make wide column wide
workbook = writer.book
worksheet = workbook.worksheets()[1]
worksheet.set_column('B:B', 24)

# Save the result
writer.save()

结果:

enter image description here