6

我有以下代码生成 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

任何帮助将不胜感激。提前谢谢了。

4

3 回答 3

9

我找到了答案:

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)
于 2020-04-22T12:34:48.777 回答
2

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 返回一个 Styler,而不是一个数据框。您可以在此处查看文档。

于 2020-04-22T11:25:37.777 回答
0

这将在您的浏览器中显示 df ,样式器也有.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)

于 2022-01-27T11:15:21.393 回答