我正在从像这样的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”
如何避免这种科学记数法并将完整数字作为字符串?
答案 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]