【问题标题】:CSV to Excel - preserving percentages using PythonCSV 到 Excel - 使用 Python 保留百分比
【发布时间】:2020-03-10 00:34:54
【问题描述】:

我正在尝试编写一个脚本,将多个 CSV 文件合并到一个带有单独工作表的 Excel 文件中。这样做时,我意识到任何包含百分比的列都会出现错误The number in this cell is formatted as text or preceded by an apostrophe。每张表中有多个列,没有包含百分比的特定顺序,因此我正在寻找一种解决方案,以避免所有包含百分比的列出现错误。我试过传递不同的参数,但他们还没有解决问题。

这是我所拥有的示例代码:

import pandas as pd

path = 'Test.csv'
df = pd.read_csv(path)

writer = pd.ExcelWriter('result.xlsx', engine='xlsxwriter')
df.to_excel(writer, index = None, header=True)

writer.save()

我已经包含了 csv 文件和 excel 文件的屏幕截图,所以我希望它有助于更​​好地展示手头的问题。需要说明的是,这只是为了演示,而不是我正在使用的实际文件。

【问题讨论】:

  • 您需要删除的所有列标题都是precentages 或不同的列名?
  • 不同的列名

标签: python excel pandas csv


【解决方案1】:

您可以通过访问使用set_column 将格式添加到工作表。

data = {'Text':['This', 'Column', 'is filled', 'with'], 'Number':[20, 21, 19, 18], 'Percentages':['23.3%','46.82%','1.28%','33.3%']} 
df = pd.DataFrame(data) 
writer = pd.ExcelWriter('result.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False, header=True, sheet_name='somename')
# get the workbook and worksheet
workbook = writer.book
worksheet = writer.sheets['somename']
# add format (percentage with 2 decimals)
percent_fmt = workbook.add_format({'num_format': '0.00%'})
# set 3rd column to percentage format
worksheet.set_column(2,2,12, percent_fmt)
writer.save()

【讨论】:

  • 我尝试运行它,但输出显示与我之前提到的相同的错误The number in this cell is formatted as text or preceded by an apostrophe。另外,如果可能的话,我正在寻找一种可以应用于整个工作簿的解决方案,该解决方案不涉及查找带有百分比的列。每张纸的列太多了。
猜你喜欢
  • 2021-10-10
  • 2016-09-17
  • 2020-12-27
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多