[英]Converting a CSV string into a dictionary
對於一個項目,我試圖在對文件進行特定修改后將我的 csv 文件轉換為字典。 所以,
df = pd.read_csv('')
for col in df:
if col[:10] == 'Warehouse.':
stripped = col[10:]
if stripped[:8] != 'timedata':
print('\n',col)
我正在嘗試將生成的文件轉換為字典,但卡住了。 我努力了:
通過使用 line.strip("\n") 刪除尾隨換行符來迭代文件 (df),然后使用 line.split(",") 拆分結果字符串以獲得鍵和值
在我對文件進行更改之前使用 DictReader class,盡管我一直收到錯誤消息說我不能這樣做
將此修改后的 csv 轉換為字典的最佳方法是什么?
謝謝!
也稱為 map 的字典是鍵值對數據結構,那么您希望字典中的鍵和值到底是什么?
我將假設鍵是行號,值是該行中的內容,但是該行本身在單元格中包含很多值,因此 map 中的值最好是包含該行中的單元格的數組.
為此,讓我們回顧一下在 CSV(逗號分隔值)中,行由作為換行符的 '\n' 分隔,並且在每一行中,值由 ',' 逗號分隔,因此得名。
file_path = "<file_path.csv>"
file = open(file_path,'r') #open the file in read mode
data = file.read() #read the file data
file.close() #close the file
data = data.split('\n') #split the data by new line character to get each line as a list element
data.pop() #remove the last empty row
dict_data = {}
for i in range(len(data)):
data[i] = data[i].split(',') #split each line by comma to get each cell as a list element
dict_data[i+1] = data[i]
# now data is a list of lists or a 2D array where each element is a list of cells
現在您可以使用 dict_data 為其指定行號,結果將是一個數組,其中每個元素都包含 CSV 中的單元格數據
或者您可以只使用數據二維數組而不是 dict_data,但請確保使用行號 + 1,因為 arrays 或列表是從零開始的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.