Pandas数据帧读取大数字作为字符串

时间:2014-01-08 20:13:39

标签: python types pandas

我正在从像这样的csv创建一个数据框;

  

topcells = pd.DataFrame.from_csv(“url / output_topcell.txt”,header = 0,sep =',',parse_dates = True,encoding = None,tupleize_cols = False)

我感兴趣的列(单元格)包含长数字(例如6468716846847),我需要将其转换为字符串。

创建数据帧后,默认情况下数据类型似乎是numpy.float64(包括一些nan值)

当我使用时:

  

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

或:

  

topcells ['cell'] = topcells ['cell']。apply(lambda x:str(x))

我得到的字符串实际上不是“6468716846847”,而是像“6.468716846847e + 12”

如何避免这种科学记数法并将完整数字作为字符串?

1 个答案:

答案 0 :(得分: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]