2017-04-16 127 views
0

我有cluters一個CSV和他們的緯度/經度這樣的:的Python /大熊貓轉換CSV成字典並寫入新文件

cluster_label,latitude,longitude 
0,39.18193382,-77.51885109 
1,39.18,-77.27 
2,39.17917928,-76.6688633 
3,39.1782,-77.2617 
4,39.1765,-77.1927 

我試圖把它們轉換成用熊貓像這樣一本字典:

{u'0': [39.18193382,-77.51885109], 
u'1': [39.18,-77.27], 
u'2': [39.17917928,-76.6688633], 
u'3': [39.1782,-77.2617], 
u'4': [39.1765,-77.1927],} 

我已經轉換成使用.T.to_dict()字典但是當我嘗試寫出來,以一個新的文件,我得到Attribute Error(s):'dict' object has no attribute 'to_csv/json/etc.'。如何將我的csv文件轉換爲dictionary,然後將結果字典保存爲新文件?

代碼

import pandas as pd 

data = pd.read_csv('cluster_centroids.csv', delimiter=',', index_col='cluster_label') 

dict = data.T.to_dict() 
dict.to_csv('centroidDict.csv') 

回答

1

如果你正試圖輸出數據幀到csv,你可以做以下的,而不是轉換的東西一本字典。

import pandas as pd 

file = 'test.csv' 

df = pd.read_csv('test.csv', index_col='cluster_label') 

df['co-ords'] = tuple(zip(df.latitude, df.longitude)) 
df.drop(['latitude', 'longitude'],axis=1, inplace=True) 

df.to_csv('centroidDict.csv') 

但如果你想只寫入一個文件字典中,你可能想看看用泡菜保留信息,蟒蛇以後使用。

+0

是的,我想保留字典結構在一個新的文件。目的是然後閱讀這個字典文件作爲在第二個答案在這裏提到的networkx圖中的位置:http://stackoverflow.com/questions/19915266/drawing-a-graph-with-networkx-on-a-底圖 –

+0

那麼有很多選項可以將字典寫入文件。如果您在存儲時不需要它是人類可讀的,則可以對其進行醃製。您可以使用JSON或XML將其存儲爲可讀。您始終可以將數據保存在上面的DataFrame中,並在需要時將其轉換。但它看起來像NetworkX可能能夠從DataFrame獲取信息,所以我可能會考慮這樣做。但是我對NetworkX不太瞭解,所以在這方面不太確定。 – Aklys

+0

好的,謝謝你的幫助。我試圖轉換爲字典,並讓NetworkX讀取腳本內的字典而不是另一個文件,但也遇到了錯誤。我將不得不修補一些,並就這個話題提出更多的問題。 –