[英]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.