逗号分隔的熊猫DataFrame上千

时间:2018-10-17 14:48:16

标签: python pandas loops dataframe

我有一个带有所有浮点数的熊猫数据框。我想用千位分隔符将它们变成 integers 。例如,10000.00将是10,000。数据框仅具有不包含空值的浮点数。

目前,我正在循环访问数据框的行。示例代码:

for i in range(df.shape[0]):
    df.iloc[i, :] = df.iloc[i, :].astype(int).apply('{:,}'.format)

有没有更有效的方法?最好一行吗?

谢谢!

1 个答案:

答案 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