Python 如何打印pandas.io.formats.style.Styler对象
我有以下生成pandas.io.formats.style.Styler对象的代码:Python 如何打印pandas.io.formats.style.Styler对象,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下生成pandas.io.formats.style.Styler对象的代码: import pandas as pd import numpy as np df = pd.DataFrame({'text': ['foo foo', 'bar bar'], 'number': [1, 2]}) df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'cen
import pandas as pd
import numpy as np
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
df2 # df2 is a pandas.io.formats.style.Styler object
如果在上述脚本下运行了更多代码,例如:
import pandas as pd
import numpy as np
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
df2
np.round(0.536, 2)
我尝试使用print语句,但它的输出如下:
import pandas as pd
import numpy as np
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
print(df2)
np.round(0.536, 2)
0.54
任何帮助都将不胜感激。非常感谢。set_properties方法用于创建应用于数据帧的样式。如果要在更改属性后检查数据帧样式,只需打印更改的数据帧 在你的例子中,你应该做:
import pandas as pd
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df.style.set_properties(**{'text-align': 'center'})
print(df)
方法set_properties返回一个样式器,而不是数据帧。您可以查看文档。我找到了以下答案:
import pandas as pd
from IPython.display import display
import numpy as np
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
display(df2)
np.round(0.536, 2)
谢谢@PNX,但我似乎看不到任何关于打印pandas.io.formats.style.Styler对象的问题的参考资料谢谢@mtchaves。因此,我无法使用我设置的样式打印dataframe表(即居中对齐表的标题和值并隐藏索引)?是的,当应用样式后打印df时,它应该以不同的方式显示。我建议您仔细阅读此文档,以便更好地理解它。()谢谢@mtchaves。事实上,我已经找到了一种方法来做到这一点。如果有兴趣,请参阅下面的答案。@mtchaves-您对数字格式有什么建议吗?我试图使用
df.descripe.style.format('{:,}')
将数据帧打印到终端,但没有成功。文档中不清楚如何实现这一点——也许我遗漏了什么?
import pandas as pd
from IPython.display import display
import numpy as np
df = pd.DataFrame({'text': ['foo foo', 'bar bar'],
'number': [1, 2]})
df1 = df.style.set_table_styles([dict(selector='th', props=[('text-align', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
display(df2)
np.round(0.536, 2)