簡體   English   中英

Python Pandas read_csv.to_dict 中的奇怪行為

[英]Strange behavior in Python Pandas read_csv .to_dict

我有一個數據集,其數據格式如下:

Name,Code
Mozambique,MZ
Myanmar,MM
Namibia,NA
Nauru,NR
Nepal,NP
Netherlands,NL

我通過首先將 CSV 文件轉換為字典來將此數據加載到數據庫中。

我使用以下命令來執行轉換:

dict_from_csv = pd.read_csv('test.csv', header=0, index_col=0, squeeze=True).to_dict()

當我這樣做時,帶有鍵 Namibia 的項目的值被評估為nan

我創建了一個小型測試工具來驗證這一點

import pandas as pd

dict_from_csv = pd.read_csv('test.csv', header=0, index_col=0, squeeze=True).to_dict()

print(dict_from_csv)

運行結果如下:

{'Mozambique': 'MZ', 'Myanmar': 'MM', 'Namibia': nan, 'Nauru': 'NR', 'Nepal': 'NP', 'Netherlands': 'NL'}

由於我將此信息插入到具有 NOT NULL 約束的數據庫表中,因此這顯然不起作用。

我嘗試將數據文件中的 NA 用雙引號括起來,並得到相同的結果。

如果我將數據文件中的 NA 用單引號括起來,它確實會正確轉換為字符串,但會使用封閉的單引號存儲在字典中。

請上傳您的數據集(test.csv)

pandas.read_csv有一個參數keep_default_na 將此設置為False可以解決問題。

修正后的行是:

dict_from_csv = pd.read_csv(
    'test.csv', header=0, index_col=0, squeeze=True, keep_default_na=False
).to_dict()

暫無
暫無

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

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