如果我有浮动的DataFrame,我可以使用pd.options.display.float_format
自定义显示,例如this answer中指出的。例如:
import pandas as pd
import numpy as np
pd.options.display.float_format = '{:,.2f}'.format
pd.DataFrame(np.random.randn(2, 2))
这会给我预期的结果:
另一方面,如果我在DataFrame包含复杂浮动时尝试相同,则不起作用:
import pandas as pd
import numpy as np
pd.options.display.float_format = '{:,.2f}'.format
pd.DataFrame(np.random.randn(2, 2) + 1j * np.random.randn(2, 2))
产生
我在relevant docs中没有看到任何具体的复数提及,'{:,.2f}'.format(np.complex(1.12345 + 1j * .8746234))
正确地截断了复数的实部和虚部,
那么为什么这不起作用?
答案 0 :(得分:3)
我是python的新手,但是我发现了这个,我喜欢输出
import pandas as pd
pd.set_option('display.float_format', '{:,.0f}'.format)
在此选项中,您可以使用pd.set_option以获得所需的输出
答案 1 :(得分:1)
这是使用applymap获取所需输出的一种方法,它将以单元格方式应用。
pd.DataFrame(np.random.randn(2, 2) + 1j * np.random.randn(2, 2)).applymap(lambda x: '{:,.2f}'.format(x))
输出:
0 1
0 1.10-1.15j 0.49+0.65j
1 0.51+1.39j -0.92-0.07j
答案 2 :(得分:0)
display.float_format
不适用于复数。
display.precision
适用于浮点数和复杂值。
例如:pd.set_option("display.precision", 3))