我有一个带有所有浮点数的熊猫数据框。我想用千位分隔符将它们变成 integers 。例如,10000.00将是10,000。数据框仅具有不包含空值的浮点数。
目前,我正在循环访问数据框的行。示例代码:
for i in range(df.shape[0]):
df.iloc[i, :] = df.iloc[i, :].astype(int).apply('{:,}'.format)
有没有更有效的方法?最好一行吗?
谢谢!
答案 0 :(得分:0)
.applymap()
可以在整个数据框中的每个元素上应用函数:
In [14]: df
Out[14]:
0 1 2 3 4
0 178711.734521 118958.200494 54379.699539 72575.737361 129236.395323
1 132075.638310 37217.504969 131311.983325 35175.116276 191367.853498
2 102123.073075 9860.698108 41645.629665 4240.177466 4670.187517
3 57162.513788 34473.448018 197430.723197 101702.904956 31658.275327
4 199243.246008 143353.212629 79133.130402 143414.562742 85171.281362
In [15]: df.applymap('{:,.0f}'.format)
Out[15]:
0 1 2 3 4
0 178,712 118,958 54,380 72,576 129,236
1 132,076 37,218 131,312 35,175 191,368
2 102,123 9,861 41,646 4,240 4,670
3 57,163 34,473 197,431 101,703 31,658
4 199,243 143,353 79,133 143,415 85,171