簡體   English   中英

Python:使用熊貓從excel轉換為CSV時,請保持前導零

[英]Python: Keep leading zeroes when converting from excel to CSV with pandas

我有一個要插入數據庫的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時如何保留前導零?

文檔

dtype :類型名稱或列的字典->類型,默認為無
數據或列的數據類型。 例如{'a':np.float64,'b':np.int32}使用對象將數據保存為Excel中存儲的內容,而不解釋dtype。 如果指定了轉換器,則會將它們應用於dtype轉換的INSTEAD。
0.20.0版中的新功能。

所以,你可以告訴pd.read_excel不通過設置解釋數據dtype -kwarg到object

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM