В Python как мне отформатировать pandas фрейм данных и кросс-таблицу? - PullRequest
0 голосов
/ 16 января 2020

Это мой код:

import pandas as pd
cols= ['DD','MM','YYYY','HH'] #names
DD,MM,YYYY,HH=[1,2,None,4,5,5],[1,1,1,2,2,3],[2014,2014,2014,2014,2014,2014],[20,20,20,18,18,18] #data
df = pd.DataFrame(list(zip(DD,MM,YYYY,HH)), columns =cols )
print (df)
a=pd.crosstab(df .HH, df .MM,margins=True)
print (a)

Я хочу просмотреть результаты в виде таблицы. Границы таблицы или хотя бы такое же количество цифр решит проблему. Я хочу видеть таблицу на консоли без графического окна.

1 Ответ

0 голосов
/ 16 января 2020

Если вам нужна красивая кросс-таблица, вы можете использовать seaborn.heatmap

Пример

>>> import numpy as np; np.random.seed(0)
>>> import seaborn as sns; sns.set()
>>> uniform_data = np.random.rand(10, 12)
>>> ax = sns.heatmap(uniform_data)

результат будет выглядеть следующим образом:

Вы можете найти множество примеров, которые показывают, как это применить, например:

Обновление

Чтобы просто отобразить кросс-таблицу в отформатированном виде, можно пропустить print и отобразить вот так

import pandas as pd
cols= ['DD','MM','YYYY','HH'] #names
DD,MM,YYYY,HH=[1,2,None,4,5,5],[1,1,1,2,2,3],[2014,2014,2014,2014,2014,2014],[20,20,20,18,18,18] #data
df = pd.DataFrame(list(zip(DD,MM,YYYY,HH)), columns =cols )
print (df)
a = pd.crosstab(df .HH, df .MM,margins=True)
display(a)

, который даст тот же результат, что и:

pd.crosstab(df .HH, df .MM,margins=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...