Как напечатать объект pandas .io.formats.style.Styler - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть следующий код, который создает объект 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

Любая помощь действительно будет оценена. Большое спасибо заранее.

Ответы [ 2 ]

3 голосов
/ 22 апреля 2020

Метод 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, а не датафрейм. С документацией можно ознакомиться здесь .

0 голосов
/ 22 апреля 2020

Я нашел ответ на этот вопрос:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...