0

我有一个 long int,我不希望在打印它或将其转换为字符串时将其截断。

以下不起作用:

import pandas as pd
b = pd.Series({"playerid": 544911367940993}, dtype='float64')
print("%s" % b['playerid'])
print(str(b['playerid'])
4

3 回答 3

1

打印不会截断您的 long int,也不会使用以下格式进行格式化"%s"

>>> "%s" % 12345678901234567898012345678901234567890
'12345678901234567898012345678901234567890'

所以我猜想通过写入将它传递到pd.Series()该对象和/或从该对象中获取它会进行b['playerid']任何截断。

于 2013-05-07T22:44:40.013 回答
1

如果您只是想像在 OP 中一样将其打印出来,您可以使用%d格式字符串

In [5]: print('%d' % b['playerid'])
544911367940993

您还可以使用 format() 函数:

In [25]: x = '{:.0f}'.format(b['playerid'])
In [26]: x
Out[26]: '544911367940993'
于 2013-05-07T22:59:55.750 回答
0

jreback 找到的解决方案:

In [75]: b.apply(lambda x: x.__repr__())
Out[75]: 
playerid    544911367940993.0
dtype: object

In [77]: b.apply(lambda x: "%.0f" % x)
Out[77]: 
playerid    544911367940993
dtype: object

https://github.com/pydata/pandas/issues/3542

于 2013-05-07T22:43:02.433 回答