2014-01-08 204 views
0

我從這樣的csv創建一個數據幀;熊貓數據幀讀取大字符串作爲字符串

topcells = pd.DataFrame.from_csv( 「URL/output_topcell.txt」,首標= 0,九月= '',parse_dates =真,編碼=無,tupleize_cols =假)

我感興趣的列(單元格)包含很長的數字(例如6468716846847),我需要將它們轉換爲字符串。

創建數據幀之後的數據類型似乎是由默認(包括一些NaN值)

被numpy.float64當我使用:

topcells.cell = topcells.cell.astype(STR)

或:

topcells [ '細胞'] = topcells [ '細胞']應用(拉姆達×:STR (X))

我得到的字符串是不實際「6468716846847」,但像「6.468716846847e + 12」

我怎樣才能避免這種科學記數法,並獲得完整的數字作爲一個字符串?

回答

1

您應該使用頂級命名空間中的read_csv函數,它有更多的讀取選項,包括dtype參數。

例如,與tst.csv

c1,c2,c3,c4,c5 
a,b,6468716846847,12,13 
d,e,6468716846848,13,14 

你:

In [11]: pd.read_csv('tst.csv', dtype={'c3': 'str'}) 
Out[11]: 
    c1 c2    c3 c4 c5 
0 a b 6468716846847 12 13 
1 d e 6468716846848 13 14 

[2 rows x 5 columns] 
+0

假設該列沒有任何的NaNü也可以作爲Int64的閱讀 – Jeff