数据框中文本列的对齐方式不清楚
Alignment of text column in dataframe unclear
我有一个包含文本列的数据框。文本列包含使用 unicode 字符“\u0336”删除的文本。在那种情况下,对齐会被弄乱。为什么?我该如何解决这个问题?
if __name__ == '__main__':
import pandas as pd
phenotype = {0: 0, 1: 0}
text = ''.join(x + '\u0336' for x in str(phenotype))
data = {"phenotype": [f"{phenotype}", text]}
print(pd.DataFrame(data=data).to_string(justify="right"))
结果:
phenotype
0 {0: 0, 1: 0}
1 {̶0̶:̶ ̶0̶,̶ ̶1̶:̶ ̶0̶}̶
预计:
phenotype
0 {0: 0, 1: 0}
1 {̶0̶:̶ ̶0̶,̶ ̶1̶:̶ ̶0̶}̶
使用组合个角色很勇敢,你被咬了
大多数显示的东西知道最常见的unicode字符,但是一旦字符数和显示位置数不同,就会出现奇怪的事情。
尽管具有不错的格式化功能,Pandas 主要是一个计算 工具。此外,它的底层存储是 numpy,这意味着它将非常擅长处理数字数据,而在处理字符串时效率较低。你试图做的不是 pandas 的意思。恕我直言,这确实是一个错误,您可以发送有关它的错误报告。不确定它是否会被修复以及为什么,因为它与核心目标无关。
表示已删除某些内容的预期方法是添加一个额外的布尔列,或者用 NaN 或空字符串替换该值,或者...但请不要尝试使用 COMBINING LONG STROKE覆盖 U+0336 unicode 字符。我可以确认像 IDLE 这样的 Tk 工具也没有正确处理它。
如果您使用 Jupyter,一种可能的方法是为此使用 HTML 样式。但它只适用于 Jupyter notebook...
我有一个包含文本列的数据框。文本列包含使用 unicode 字符“\u0336”删除的文本。在那种情况下,对齐会被弄乱。为什么?我该如何解决这个问题?
if __name__ == '__main__':
import pandas as pd
phenotype = {0: 0, 1: 0}
text = ''.join(x + '\u0336' for x in str(phenotype))
data = {"phenotype": [f"{phenotype}", text]}
print(pd.DataFrame(data=data).to_string(justify="right"))
结果:
phenotype
0 {0: 0, 1: 0}
1 {̶0̶:̶ ̶0̶,̶ ̶1̶:̶ ̶0̶}̶
预计:
phenotype
0 {0: 0, 1: 0}
1 {̶0̶:̶ ̶0̶,̶ ̶1̶:̶ ̶0̶}̶
使用组合个角色很勇敢,你被咬了
大多数显示的东西知道最常见的unicode字符,但是一旦字符数和显示位置数不同,就会出现奇怪的事情。
尽管具有不错的格式化功能,Pandas 主要是一个计算 工具。此外,它的底层存储是 numpy,这意味着它将非常擅长处理数字数据,而在处理字符串时效率较低。你试图做的不是 pandas 的意思。恕我直言,这确实是一个错误,您可以发送有关它的错误报告。不确定它是否会被修复以及为什么,因为它与核心目标无关。
表示已删除某些内容的预期方法是添加一个额外的布尔列,或者用 NaN 或空字符串替换该值,或者...但请不要尝试使用 COMBINING LONG STROKE覆盖 U+0336 unicode 字符。我可以确认像 IDLE 这样的 Tk 工具也没有正确处理它。
如果您使用 Jupyter,一种可能的方法是为此使用 HTML 样式。但它只适用于 Jupyter notebook...