Ale*_*ont 1 python types pandas
我正在从这样的 csv 创建一个数据框;
topcells=pd.DataFrame.from_csv("url/output_topcell.txt", header=0, sep=', ', parse_dates=True, 编码=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”
如何避免这种科学记数法并以字符串形式获取完整数字?
您应该使用read_csv
顶级命名空间中的函数,它有更多读取选项,包括dtype
参数。
例如,与tst.csv
:
c1,c2,c3,c4,c5
a,b,6468716846847,12,13
d,e,6468716846848,13,14
Run Code Online (Sandbox Code Playgroud)
你得到:
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]
Run Code Online (Sandbox Code Playgroud)