python-3.x - 如何使用表格格式化带有千位分隔符和右对齐的数字
问题描述
我正在使用制表(https://pypi.org/project/tabulate/),我想用千位分隔符格式化一个数字列并右对齐。这就是我所做的,它没有正确对齐我的列。
import pandas as pd
rom tabulate import tabulate
df = pd.DataFrame([{'size':225612466, 'path': '/etc'}, {'size':66, 'path': '/home'}])
df['size'] = df['size'].apply(lambda x: "{:,}".format(x).rjust(15))
print(tabulate(df, headers='keys', tablefmt='psql', showindex=False))
+--------+-------------+
| path | size |
|--------+-------------|
| /etc | 225,612,466 |
| /home | 66 |
+--------+-------------+
我希望它是这样的:
+--------+-----------------+
| path | size |
|--------+-----------------|
| /etc | 225,612,466 |
| /home | 66 |
+--------+-----------------+
谢谢,
解决方案
我猜缺少的参数tabulate
是numalign="right"
,但你必须摆脱手动rjust
将值更改为str
:
import pandas as pd
rom tabulate import tabulate
df = pd.DataFrame([{'size':225612466, 'path': '/etc'}, {'size':66, 'path': '/home'}])
print(tabulate(df, headers='keys', tablefmt='psql', showindex=False, numalign="right"))
给出输出:
+--------+-----------+
| path | size |
|--------+-----------|
| /etc | 225612466 |
| /home | 66 |
+--------+-----------+
如果要保留数千个分隔符,则必须使用以下命令保留格式并将字符串与 rigth 对齐stralign
:
print(tabulate(df, headers='keys', tablefmt='psql', showindex=False, stralign="right"))
推荐阅读
- c# - 无法加载文件或程序集'System.Threading.Tasks.Dataflow,版本 = 4.6.3.0
- google-chrome - Google Chrome - 重新加载时检查 CSS 网格?
- javascript - 如何访问变量中元素的类
- python - python pcolormesh 不同背风角沙丘上流速模式的动画
- mysql - 是否可以将表中包含数据的单个列复制到同一架构中的另一个表中?
- pytorch - 为什么在 Pytorch 中打印 GPU 张量的值需要这么长时间?
- google-sheets - 匹配整个列的串联?
- date - I need to change the format of the date
- flutter - Flutter ChangeNotifier,重复条目以在 initState 方法中列出
- python - Python不输出ANSI颜色