2014-01-08 150 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