gpt4 book ai didi

Python:使用 pandas 从 Excel 转换为 CSV 时保留前导零

转载 作者:行者123 更新时间:2023-12-01 01:24:17 27 4
gpt4 key购买 nike

我有一个 Excel 工作表,需要插入到数据库中。我编写了一个 python 脚本,它接受一个 excel 文件,将其转换为 CSV,然后将其插入数据库。问题是 Excel 工作表包含邮政编码,不幸的是,它删除了前导零。

这是我的代码,用于读取 Excel 工作表并将其放入 csv:

def excel_to_csv():
xlsx = pd.read_excel(excel_path + fileName + '.xlsx')
xlsx.to_csv(csv_file, encoding='utf-8', index=False, na_rep=None, quoting=csv.QUOTE_NONE)


excel_to_csv()

然后我使用此代码将其插入数据库:

with open(csv_file, 'rb') as f:
reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
next(reader)
for row in reader:
cur.execute(
"INSERT INTO table (foo1, foo2, zipcode, foo3) VALUES (%s, %s, %s, %s); ",
row
)

conn.commit()

当我打印从 Excel 转换后的 csv 时,我得到以下结果:

foo1,foo2,zipcode,foo3
353453452,DATA,37,CITY
463464356,DATA,2364,CITY

Excel文件中的邮政编码单元格被转换为文本,因此它保留前导零,但是当我将Excel文件转换为csv时如何保留前导零?

最佳答案

来自docs :

dtype : Type name or dict of column -> type, default None
Data type for data or columns. E.g. {‘a’: np.float64, ‘b’: np.int32} Use object to preserve data as stored in Excel and not interpret dtype. If converters are specified, they will be applied INSTEAD of dtype conversion.
New in version 0.20.0.

因此,您可以通过将 dtype-kwarg 设置为 object 来告诉 pd.read_excel 不要解释数据:

xlsx = pd.read_excel(excel_path + fileName + '.xlsx', dtype='object')

关于Python:使用 pandas 从 Excel 转换为 CSV 时保留前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53496494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com