【问题标题】:converting csv to xlsx numbers stored as text issue in mixed type data将 csv 转换为 xlsx 数字,存储为混合类型数据中的文本问题
【发布时间】:2019-10-14 11:31:22
【问题描述】:

我有一个大型数据集,其中包含单元格中的浮点数、整数和字符串。 我的原始数据集是 csv 格式。转换为 xlsx 时,我将数字存储为文本错误。

我见过this,如果您手动写入单元格,它会提供脚本。

还有this,它展示了如何将 csv 转换为文本。

这是我对两个脚本的拼接:

import csv
import os
import glob
import xlsxwriter

from xlsxwriter import Workbook
workbook = xlsxwriter.Workbook('file.xlsx', {'strings_to_numbers': True})

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    workbook = Workbook(csvfile[:-4] + '.xlsx')
    worksheet = workbook.add_worksheet()
    with open(csvfile, 'rt', encoding='utf8') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader):
            for c, col in enumerate(row):
                worksheet.write(r, c, col)

workbook.close()

这不适用于解决存储为文本问题的数字。这个问题仍然存在。

我想将数字写成数字,因为它将 csv 转换为 xlsx

【问题讨论】:

  • 您能否也发布一些给您带来问题的示例数据?这样我们就可以根据您的确切问题重新创建。

标签: python csv xlsxwriter


【解决方案1】:

for 循环的第一行覆盖了您使用“strings_to_numbers”定义的工作簿变量。尝试删除该行,因为您似乎想将工作表添加到单个工作簿,对吗?

根据您链接的示例,这似乎只是一个小的复制/粘贴错误:)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    相关资源
    最近更新 更多