【发布时间】:2020-04-02 01:42:44
【问题描述】:
假设我创建了一个包含 int 和 float 类型的 pandas 数据框:
>>> df=pd.DataFrame([[1, 1.3], [2, 2.4]], columns=['a', 'b'])
>>> df
a b
0 1 1.3
1 2 2.4
很明显,'a' 列是由numpy.int64 值组成的:
>>> df.a.dtype
dtype('int64')
>>> df.a[0]
1
>>> type(df.a[0])
<class 'numpy.int64'>
...我可以使用d 格式化说明符来格式化这些列'a' 值:
>>> "{a:d}".format(a=df.a[0])
'1'
但是,如果我尝试逐行应用相同的格式,则会收到此错误消息,指出 'a' 列中的值是浮点数而不是整数:
>>> df.apply(lambda s: "{a:d}{b:f}".format(**s), axis=1)
Traceback (most recent call last):
...
ValueError: ("Unknown format code 'd' for object of type 'float'", 'occurred at index 0')
这里发生了什么?
【问题讨论】:
标签: python pandas formatting number-formatting