如何自定义复数DataFrame的显示格式?
How do I customize the display format of a DataFrame with 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))
这会给我预期的结果:
另一方面,如果我在 DataFrame 包含 complex 浮点数时尝试相同的方法,这将不起作用:
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))
正确地截断了复数的实部和虚部,
那为什么这不起作用?
这是使用 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
我是 python 的新手,但是我发现了这个并且我喜欢输出
import pandas as pd
pd.set_option('display.float_format', '{:,.0f}'.format)
在此选项中,您可以使用 pd.set_option 以获得所需的输出
display.float_format
不适用于复数。
display.precision
适用于浮点数和复数值。
例如:pd.set_option("display.precision", 3))
如果我有一个浮点数 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 包含 complex 浮点数时尝试相同的方法,这将不起作用:
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))
正确地截断了复数的实部和虚部,
那为什么这不起作用?
这是使用 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
我是 python 的新手,但是我发现了这个并且我喜欢输出
import pandas as pd
pd.set_option('display.float_format', '{:,.0f}'.format)
在此选项中,您可以使用 pd.set_option 以获得所需的输出
display.float_format
不适用于复数。
display.precision
适用于浮点数和复数值。
例如:pd.set_option("display.precision", 3))