【问题标题】:Error in comma alignment with Tabulate for PythonPython 的 Tabulate 逗号对齐错误
【发布时间】:2016-03-27 17:32:10
【问题描述】:

使用 Python 制表将 Pandas DataFrame 格式化为 psql 表。这是表格说明:

print tabulate(df,headers=df.columns.values.tolist(), floatfmt=",.2f", tablefmt='psql')

这就是我得到的:

+---------------+---------------+----------------+------------------+
|   Total Value |     Total P&L |     DoD Change |       WoW change |
+---------------+---------------+----------------+------------------+
|  6,132,391.61 |  1,132,391.66 |  142,900.00    |  1,341,983.32    |
|  5,123,830.00 |    123,830.00 |        -125.00 |     12,375.00    |
|  1,762,700.00 |     62,700.00 |   57,950.00    |     81,700.00    |
|  1,746,970.00 |     46,970.00 |  -23,589.30    |           nan    |
|  5,046,650.00 |     46,650.00 |   -7,700.00    |      5,350.00    |
|  4,998,793.08 |     -1,206.92 |           0.00 |             0.00 |
|  4,948,365.06 |    -51,634.94 |         300.00 |      2,870.00    |
|  4,645,100.00 |   -354,900.00 | -106,925.00    |     78,800.00    |
|  4,604,000.00 |   -396,000.00 |           0.00 |             0.00 |
|  4,566,477.00 |   -433,523.00 |  -40,171.50    |   -104,325.00    |
|  4,566,477.00 |   -433,523.00 |  -40,171.50    |   -104,325.00    |
+---------------+---------------+----------------+------------------+

由于一些奇怪的原因,数字

【问题讨论】:

  • 顺便说一句,即使我通过参数 numalign="decimal",我仍然得到相同的结果。仅当我通过 numalign="right" 时,所有内容都正确对齐,但这只是因为我有两个小数点。这只是一种解决方法,而不是适当的解决方案。
  • 看起来这是 Tabulate 库中的一个错误——最近有人filed an issue 提出了这个问题。所以,在它得到修复之前,我认为你的选择是要么使用“对齐”技巧,要么满足于不显示逗号,要么完全使用不同的库。 (当然,第四个选择是贡献一个补丁来解决这个问题)。
  • 是的,这个问题似乎正是问题所在。感谢您的链接。现在将解决它并跟踪修复。我认为我不够熟练,无法自己修复它;-)。

标签: python format alignment comma tabular


【解决方案1】:

试试print tabulate(df,headers=df.columns.values.tolist(), floatfmt=",.2f", tablefmt='psql', numalign='left')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多