2017-05-16 71 views
0

所以,我有一個文件數據框中字典:蟒蛇

F1.txt 

CDUS,CBSCS,CTRS,CTRS_ID 
0,0,0.000000000375,056572 
0,0,4.0746,0309044 
0,0,0.6182,0971094 
0,0,15.4834,075614 

我想列名和D型插入與列名是關鍵一本字典和相應的D型的專欄是的值。

我讀語句是這樣的:

csv=pandas.read_csv('F2.txt',dtype={'CTRS_ID':str}) 

我期待這樣的事情:

data = {'CDUS':'int64','CBSCS':'int64','CTRS':'float64','CTRS_ID':'str'} 

有人可以幫助我。在此先感謝

回答

1

您可以使用dtypes查找每列的類型,然後將結果轉換爲字典to_dict。另外,如果你想要的類型的字符串表示,可以將dtypes輸出轉換爲字符串:

csv=pandas.read_csv('F2.txt',dtype={'CTRS_ID':str}) 
csv.dtypes.astype(str).to_dict() 

這給輸出:

{'CBSCS': 'int64', 'CDUS': 'int64', 'CTRS': 'float64', 'CTRS_ID': 'object'} 

其實,這是一個正確的結果,因爲大熊貓對待字符串作爲對象。 我沒有足夠的專業知識來闡述這一點,但在這裏,一對夫婦引用:

pandas distinction between str and object types

pandas string data types 「熊貓不支持內部字符串類型(事實上他們總是轉換爲對象)」 [來自熊貓維護者@Jeff]

+1

我喜歡這個答案 - 非常整潔,極其簡單 – MaxU

+0

它不工作。請檢查以下代碼:'csv2 = pandas.read_csv('F1.txt')dict1 = csv2.dtypes.astype(str).to_dict() print dict1' – Rowen

+0

這給出了輸出:'{'CTRS':'object ','CDUS':'object','BOARD_ID':'object','CBSCS':'object'}''''' – Rowen