如何自定义具有复数的DataFrame的显示格式?

时间:2018-06-15 12:30:54

标签: python pandas dataframe complex-numbers

如果我有浮动的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))

这会给我预期的结果:

enter image description here

另一方面,如果我在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))

产生

enter image description here

我在relevant docs中没有看到任何具体的复数提及,'{:,.2f}'.format(np.complex(1.12345 + 1j * .8746234))正确地截断了复数的实部和虚部, 那么为什么这不起作用?

3 个答案:

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