如何打印 pandas.io.formats.style.Styler 对象
How to print a pandas.io.formats.style.Styler object
我有以下生成 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', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
df2 # df2 is a pandas.io.formats.style.Styler object
如果我在上面的脚本下面有更多代码 运行,我该如何打印 df2
,例如:
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)
<pandas.io.formats.style.Styler object at 0x000000000B4FAFC8>
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 returns 是 Styler,不是数据框。您可以查看文档 here.
我找到了答案:
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)
这将在您的浏览器中显示 df,
styler 也有 .to_html()
方法
import webbrowser
import pandas as pd
d={
"id":[22,23,24,25,26,27,28],
"a":[1,2, 3, 4, 5, 6, 7],
"b":[1,2, 3, 4, 5, 6, 7]
}
df = pd.DataFrame(d)
with open('str.html','w') as f:
df.to_html(f)
filename = ' str.html'
webbrowser.open_new_tab(filename)
我有以下生成 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', 'center')])])
df2 = df1.set_properties(**{'text-align': 'center'}).hide_index()
df2 # df2 is a pandas.io.formats.style.Styler object
如果我在上面的脚本下面有更多代码 运行,我该如何打印 df2
,例如:
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)
<pandas.io.formats.style.Styler object at 0x000000000B4FAFC8>
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 returns 是 Styler,不是数据框。您可以查看文档 here.
我找到了答案:
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)
这将在您的浏览器中显示 df,
styler 也有 .to_html()
方法
import webbrowser
import pandas as pd
d={
"id":[22,23,24,25,26,27,28],
"a":[1,2, 3, 4, 5, 6, 7],
"b":[1,2, 3, 4, 5, 6, 7]
}
df = pd.DataFrame(d)
with open('str.html','w') as f:
df.to_html(f)
filename = ' str.html'
webbrowser.open_new_tab(filename)