Что такое кросс таблица
Перейти к содержимому

Что такое кросс таблица

Excel

Коннектор « Excel » — объект, предназначенный для извлечения данных из файла формата Microsoft Excel (*.xls или *.xlsx). Для импорта данных из файлов Microsoft Excel в операционной системе разрядностью 64 бита «Форсайт. Аналитическая платформа» и Microsoft Office должны иметь такую же разрядность.

Примечание . Для импорта данных из файлов Excel с большим объёмом данных может потребоваться большое количество оперативной памяти. Для предотвращения такой ситуации перенесите данные из файла Excel в текстовый файл и воспользуйтесь коннектором «Текст».

После добавления коннектора на рабочее пространство задачи ETL задайте базовые свойства и настройки импорта. Также можно отредактировать выход коннектора и задать параметры фильтрации данных.

Базовые свойства

В базовых свойствах задается наименование объекта, идентификатор и примечание.

Настройка импорта

На странице « Настройка импорта » указывается файл с импортируемыми данными и параметры, которые используются для определения диапазона с данными.

В поле « Файл » укажите импортируемый файл Microsoft Excel. Для выбора файла нажмите кнопку « Обзор ».

В зависимости от используемого формата файла и его драйвера, будет доступен различный набор настроек:

В раскрывающемся списке « Лист данных » выберите лист, с которого будут импортированы данные.

Для настройки импорта укажите параметры:

Пропустить первые N строк . Укажите количество строк, которые необходимо пропустить при импорте. Если указан «0», то данные будут импортированы с начала листа;

Строка с заголовками . Укажите, содержит ли лист данных заголовки столбцов. Если на листе присутствуют заголовки, то установите флажок и укажите номер строки, содержащей заголовки (нумерация строк начинается с нуля). Это позволит исключить заголовки из данных для импорта. Если на листе отсутствуют заголовки, то снимите флажок.

В раскрывающемся списке выберите драйвер версии Microsoft Excel, в который был сохранен файл. По умолчанию используется драйвер ExcelEx . Если используется данный драйвер, то будут доступны настройки, аналогичные формату XLSX . Если используется другой драйвер, то будут доступны настройки:

Первая строка содержит заголовки . При установленном флажке значения первой строки будут идентифицированы как наименования столбцов. Если флажок снят, то первая строка таблицы будет расценена как строка данных;

Способ расположения импортируемых данных :

Лист данных . В раскрывающемся списке выберите лист, с которого будут импортированы данные;

Запрос . В поле ввода сформируйте запрос, на основе которого будет осуществлена выборка данных из файла.

Примечание . При импорте данных из файла формата XLS с использованием драйвера Excel 8.0 (97-2003) длина записи поля будет определяться автоматически по первым восьми строкам, по которым также определяется тип данных. Если тип данных определен как текст и в этих строках отсутствуют значения, длина которых больше 255 символов, то при импорте все строковые значения будут загружены с ограничением в 255 символов. Это связано с тем, что провайдер Microsoft Jet OLE DB 4.0 использует для определения типа данных и вычисления максимальной длины только первые восемь строк.
Для избежания обрезания записей задайте в ключе   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows] необходимое значение. Если установить значение = 0, то определение типа данных и вычисление максимальной длины будет производиться по всем записям строк, что может сказаться на производительности системы.

Если установить флажок « Запрашивать файл при выполнении задачи », то при выполнении задачи ETL будет открыт диалог для выбора файла Microsoft Excel. По умолчанию флажок снят, при этом работа осуществляется с тем файлом, который указан в поле « Файл ».

Для задания дополнительных настроек, которые используются при идентификации данных, нажмите кнопку « Дополнительные настройки ». Будет открыто окно «Дополнительные настройки». Для предварительного просмотра данных, отобранных по запросу, нажмите кнопку « Просмотр данных ».

Примечание . После того, как определены настройки импорта, структура файла не должна изменяться. Если файл запрашивается при выполнении задачи и задача используется несколько раз для загрузки данных из разных файлов, то структура этих файлов должна быть одинаковая и соответствовать тому файлу, который использовался при первичной настройке коннектора в задаче ETL.

Кросс-таблица

Кросс-таблица — это сводная таблица, в которой заголовки могут располагаться как по строкам, так и по столбцам, позволяя таким образом отразить взаимосвязь двух и более переменных друг с другом.

При установке флажка « Кросс-таблица » будут доступны дополнительные страницы, на которых задаются настройки по идентификации данных в кросс-таблице:

Структура кросс-таблицы

Кросс-таблица — это сводная таблица, в которой заголовки могут располагаться как по строкам, так и по столбцам, позволяя таким образом отразить взаимосвязь двух и более переменных друг с другом.

Для настройки структуры кросс-таблицы для выбранного источника импорта:

Нажмите на кнопку « Настройки » на странице «Настройка импорта».

В появившемся диалоговом окне установите флажок « Кросс-таблица ».

Перейдите на появившуюся в мастере создания и редактирования источника данных «Excel» страницу « Структура кросс-таблицы »:

Мастер редактирования автоматически определяет область начала числовых данных. Если необходимо, то измените область начала данных, выделив нужную ячейку с помощью основной кнопки мыши или клавиш управления.

Цвет выделенных ячеек отражает тип данных. Зависимость типа данных от цвета ячеек указана в легенде. Белым цветом выделяются ячейки, которые будут исключены при настройке кросс-таблицы и импортированы не будут. Ячейки, которые были исключены, будут использованы как заголовки столбцов.

Настройка кросс-таблицы

Для настройки кросс-таблицы:

Настройте её структуру.

Перейдите на страницу « Настройка кросс-таблицы »:

На данной странице существует возможность изменить диапазон импортируемых данных:

исключение строк/столбцов . Выполните команду « Исключить » в контекстном меню для крайних столбцов и/или строк. Данные этих столбцов импортированы не будут. Нельзя исключить единственную строку или столбец. Для добавления исключённых строк или столбцов в диапазон импортируемых данных выполните команду « Включить » в контекстном меню столбцов и/или строк;

фиксация ячеек, которые попали в исключение . Выполните команду « Добавить фиксированную ячейку » в контекстном меню ячейки. Исключёнными считаются ячейки, которые находятся за пределами кросс-таблицы, т.е. исключённые из заголовков строк и столбцов и не являющимися данными. Для удаления фиксированной ячейки выполните команду « Удалить фиксированную ячейку » в контекстном меню ячейки.

Редактирование выхода

На странице « Редактирование выхода » задаётся связь с объектом-приёмником, в который будут выгружаться данные при выполнении задачи ETL.

Примечание . Страница является общей для всех коннекторов и преобразователей данных, кроме преобразователей «Разделение» и «Алгоритм пользователя». Рассмотрим настройку списка полей и связи выхода на примере мастера редактирования источника данных «Репозиторий».

На странице доступны следующие настройки:

Укажите идентификатор выхода редактируемого объекта. Возможно использование символов латинского алфавита, цифр и специального символа «_».

Установите связь с объектом-приёмником, в который будут выгружаться данные. Для этого из раскрывающегося списка выберите объект задачи ETL.

Поля объекта-приёмника, в которые будут выгружаться данные, предназначены для определения формата вывода данных.

Примечание . Редактирование списка полей доступно только для коннекторов к источнику данных. Для коннекторов к приёмнику данных список полей заполняется автоматически.

Для добавления в список всех полей из связанного объекта-приёмника:

Нажмите кнопку « Заполнить из ».

В раскрывающемся меню кнопки выберите пункт « Из приёмника ».

После выполнения действий в список полей будут добавлены все поля из связанного объекта-приёмника данных.

Для добавления в список всех полей из связанного объекта-источника:

Нажмите кнопку « Заполнить из ».

В раскрывающемся меню кнопки выберите пункт « Из источника ».

После выполнения действий в список полей будут добавлены все поля из связанного объекта-источника данных.

Для добавления нового поля:

Нажмите кнопку « Добавить ». Будет открыто окно « Свойства поля »:

Задайте в открывшемся окне значения атрибутов поля:

Идентификатор . Укажите уникальный идентификатор поля. По умолчанию FIELD< Порядковый номер поля >;

Наименование . Укажите наименование поля. По умолчанию FIELD< Порядковый номер поля >;

Тип . Из раскрывающегося списка выберите тип данных поля:

По умолчанию установлен строковый тип данных;

Вычисляемое поле . Установите данный флажок для задания формулы, по которой будет вычисляться значение поля. После установки флажка введите выражение с помощью клавиатуры или редактора выражений, который открывается при нажатии на кнопку « Обзор ».
Для увеличения значения каждой новой записи на фиксированную величину используйте специальное выражение INCREMENT .

Примечание . Специальное выражение INCREMENT доступно только для вычисляемого поля целого типа.

Синтаксис данного выражения: INCREMENT[Value1, Value2], где Value1 — начальное значение, Value2 — шаг, на который значение Value1 должно увеличиваться при каждом вызове выражения. При каждой загрузке данных заполнение будет начинаться с начального значения.

Нажмите кнопку « ОК ».

После выполнения действий будет добавлено новое поле.

Для редактирования поля:

дважды щёлкните по полю основной кнопкой мыши;

выделите необходимое поле и нажмите кнопку « Редактировать ».

После выполнения действий будет открыто окно « Свойства поля », приведённое выше.

Для удаления выбранного поля нажмите кнопку « Удалить ». Поле будет удалено без подтверждения выполняемого действия.

Для изменения порядка выгрузки данных в коннектор выделите необходимое поле и переместите его в списке полей с помощью кнопок « Вверх » и « Вниз ».

Фильтрация

На странице « Фильтрация » задаётся условие, в соответствии с которым будут отбираться импортируемые данные.

Примечание . Страница является общей для всех коннекторов к источникам данных, кроме коннектора «Источник пользователя». Рассмотрим настройку фильтрации данных источника на примере мастера редактирования источника данных «Репозиторий».

Для формирования условия фильтрации нажмите кнопку « Обзор ». Будет открыто окно редактора выражения. Для составления выражения доступны все поля источника. Импортированы будут те данные, которые удовлетворяют заданному условию.

Кросс-таблица

Кросс-таблица — это специальный компонент, который служит для того, чтобы обработать, сгруппировать и просуммировать данные из источника данных. При этом результат представляется в виде таблицы. Кросс-таблица может размещаться, как напрямую на странице, так и на бэнде Данные (Data) . Если таблица, сформированная в результате построения кросс-таблицы, не помещается на одной странице, то она может быть распечатана на нескольких страницах. Компонент имеет множество свойств и настроек. Далее будут рассмотрены основные из них.

Объяснение кросс-таблицы в Pandas¶

Pandas предлагает несколько вариантов группировки и обобщения данных, но такое разнообразие вариантов может быть как благословением, так и проклятием. Все эти подходы являются мощными инструментами анализа данных, но не всегда понятно, использовать ли groupby , pivot_table или crosstab для построения сводной таблицы.

Поскольку я ранее рассматривал pivot_tables , в этой статье будет обсуждаться функция crosstab , объяснено ее использование и показано, как ее можно использовать для быстрого суммирования данных.

Функция crosstab создает таблицу кросс-табуляции, которая может показать частоту, с которой появляются определенные группы данных.

В качестве быстрого примера в следующей таблице показано количество двух- или четырехдверных автомобилей, произведенных различными автопроизводителями:

cross_tab

В таблице видно, что набор данных содержит 32 автомобиля Toyota , из которых 18 четырехдверные и 14 двухдверные. Это относительно простая для интерпретации таблица, которая иллюстрирует, почему данный подход может стать мощным способом обобщения больших наборов данных.

Pandas упрощает этот процесс и позволяет настраивать таблицы несколькими способами. В оставшейся части статьи я расскажу, как создавать и настраивать эти таблицы.

Давайте начнем с импорта всех необходимых модулей:

Теперь прочитаем набор данных об автомобилях из репозитория машинного обучения UCI и внесем для ясности некоторые изменения в наименование меток.

Этот набор данных из автомобильного ежегодника Уорда 1985 года состоит из трех типов записей: (а) спецификация автомобиля с точки зрения различных характеристик, (б) присвоенный ему рейтинг страхового риска, (в) его нормализованные потери при использовании по сравнению с другими автомобилями.

symboling normalized_losses make fuel_type aspiration num_doors body_style drive_wheels engine_location wheel_base . engine_size fuel_system bore stroke compression_ratio horsepower peak_rpm city_mpg highway_mpg price
0 3 NaN alfa-romero gas std two convertible rwd front 88.6 . 130 mpfi 3.47 2.68 9.0 111.0 5000.0 21 27 13495.0
1 3 NaN alfa-romero gas std two convertible rwd front 88.6 . 130 mpfi 3.47 2.68 9.0 111.0 5000.0 21 27 16500.0
2 1 NaN alfa-romero gas std two hatchback rwd front 94.5 . 152 mpfi 2.68 3.47 9.0 154.0 5000.0 19 26 16500.0
3 2 164.0 audi gas std four sedan fwd front 99.8 . 109 mpfi 3.19 3.40 10.0 102.0 5500.0 24 30 13950.0
4 2 164.0 audi gas std four sedan 4wd front 99.4 . 136 mpfi 3.19 3.40 8.0 115.0 5500.0 18 22 17450.0

5 rows × 26 columns

symboling normalized_losses wheel_base length width height curb_weight engine_size bore stroke compression_ratio horsepower peak_rpm city_mpg highway_mpg price
count 205.000000 164.000000 205.000000 205.000000 205.000000 205.000000 205.000000 205.000000 201.000000 201.000000 205.000000 203.000000 203.000000 205.000000 205.000000 201.000000
mean 0.834146 122.000000 98.756585 174.049268 65.907805 53.724878 2555.565854 126.907317 3.329751 3.255423 10.142537 104.256158 5125.369458 25.219512 30.751220 13207.129353
std 1.245307 35.442168 6.021776 12.337289 2.145204 2.443522 520.680204 41.642693 0.273539 0.316717 3.972040 39.714369 479.334560 6.542142 6.886443 7947.066342
min -2.000000 65.000000 86.600000 141.100000 60.300000 47.800000 1488.000000 61.000000 2.540000 2.070000 7.000000 48.000000 4150.000000 13.000000 16.000000 5118.000000
25% 0.000000 94.000000 94.500000 166.300000 64.100000 52.000000 2145.000000 97.000000 3.150000 3.110000 8.600000 70.000000 4800.000000 19.000000 25.000000 7775.000000
50% 1.000000 115.000000 97.000000 173.200000 65.500000 54.100000 2414.000000 120.000000 3.310000 3.290000 9.000000 95.000000 5200.000000 24.000000 30.000000 10295.000000
75% 2.000000 150.000000 102.400000 183.100000 66.900000 55.500000 2935.000000 141.000000 3.590000 3.410000 9.400000 116.000000 5500.000000 30.000000 34.000000 16500.000000
max 3.000000 256.000000 120.900000 208.100000 72.300000 59.800000 4066.000000 326.000000 3.940000 4.170000 23.000000 288.000000 6600.000000 49.000000 54.000000 45400.000000
symboling normalized_losses make fuel_type aspiration num_doors body_style drive_wheels engine_location wheel_base . engine_size fuel_system bore stroke compression_ratio horsepower peak_rpm city_mpg highway_mpg price
30 2 137.0 honda gas std two hatchback fwd front 86.6 . 92 1bbl 2.91 3.41 9.6 58.0 4800.0 49 54 6479.0
31 2 137.0 honda gas std two hatchback fwd front 86.6 . 92 1bbl 2.91 3.41 9.2 76.0 6000.0 31 38 6855.0
32 1 101.0 honda gas std two hatchback fwd front 93.7 . 79 1bbl 2.91 3.07 10.1 60.0 5500.0 38 42 5399.0
33 1 101.0 honda gas std two hatchback fwd front 93.7 . 92 1bbl 2.91 3.41 9.2 76.0 6000.0 30 34 6529.0
34 1 101.0 honda gas std two hatchback fwd front 93.7 . 92 1bbl 2.91 3.41 9.2 76.0 6000.0 30 34 7129.0

5 rows × 26 columns

В этом примере я хотел сократить таблицу, поэтому включил только 8 моделей, перечисленных выше.

В качестве первого примера давайте воспользуемся crosstab , чтобы посмотреть, сколько различных стилей кузова изготовили эти автопроизводители в 1985 году (год, который содержится в этом наборе данных):

body_style convertible hardtop hatchback sedan wagon
make
honda 0 0 7 5 1
mazda 0 0 10 7 0
mitsubishi 0 0 9 4 0
nissan 0 1 5 9 3
subaru 0 0 3 5 4
toyota 1 3 14 10 4
volkswagen 1 0 1 9 1
volvo 0 0 0 8 3

Функция crosstab может работать с массивами numpy , т.е. с series или столбцами во фрейме данных.

В этом примере я передаю df.make для индекса кросс-таблицы и df.body_style для столбцов кросс-таблицы. Pandas подсчитывает количество вхождений каждой комбинации. Например, в этом наборе данных Volvo производит 8 седанов и 3 универсала.

Прежде чем мы пойдем дальше, более опытные читатели могут задаться вопросом, почему мы используем именно crosstab . Я кратко коснусь этого, показав два альтернативных подхода.

Во-первых, мы можем использовать groupby , а затем unstack , чтобы получить те же результаты:

body_style convertible hardtop hatchback sedan wagon
make
honda 0.0 0.0 7.0 5.0 1.0
mazda 0.0 0.0 10.0 7.0 0.0
mitsubishi 0.0 0.0 9.0 4.0 0.0
nissan 0.0 1.0 5.0 9.0 3.0
subaru 0.0 0.0 3.0 5.0 4.0
toyota 1.0 3.0 14.0 10.0 4.0
volkswagen 1.0 0.0 1.0 9.0 1.0
volvo 0.0 0.0 0.0 8.0 3.0

Вывод для этого примера очень похож на кросс-таблицу, но потребовалось несколько дополнительных шагов, чтобы его правильно отформатировать.

Также можно сделать что-то подобное с помощью pivot_table :

body_style
body_style convertible hardtop hatchback sedan wagon
make
honda 0 0 7 5 1
mazda 0 0 10 7 0
mitsubishi 0 0 9 4 0
nissan 0 1 5 9 3
subaru 0 0 3 5 4
toyota 1 3 14 10 4
volkswagen 1 0 1 9 1
volvo 0 0 0 8 3

Обязательно прочтите мою статью о pivot_tables, если хотите понять, как это работает.

По-прежнему остается вопрос, зачем вообще использовать функцию crosstab ?

Короткий ответ заключается в том, что он предоставляет несколько удобных функций для упрощения форматирования и обобщения данных.

Более длинный ответ: бывает сложно запомнить все шаги для самостоятельного выполнения.

По моему опыту, важно знать о вариантах и использовать тот, который наиболее естественным образом вытекает из анализа.

У меня был опыт, когда я пытался написать решение на основе pivot_table , а затем быстро получил то, что хотел, используя crosstab .

Самое замечательное в pandas то, что после того, как данные помещены во фрейм, все манипуляции представляют собой 1 строку кода, поэтому вы можете экспериментировать.

Одна из распространенных потребностей в кросс-таблице — это включение промежуточных итогов.

Мы можем добавить их с помощью ключевого слова margins :

num_doors four two Total
make
honda 5 8 13
mazda 7 9 16
mitsubishi 4 9 13
nissan 9 9 18
subaru 9 3 12
toyota 18 14 32
volkswagen 8 4 12
volvo 11 0 11
Total 71 56 127

Ключевое слово margins указало pandas добавлять Total (итог) для каждой строки, а также итог внизу.

Я также передал значение в margins_name при вызове функции, потому что хотел обозначить результаты Total вместо значения по умолчанию All .

Во всех этих примерах подсчитывались отдельные случаи комбинаций данных.

crosstab позволяет указывать значения для агрегирования. Чтобы проиллюстрировать это, мы можем рассчитать среднюю снаряженную массу автомобилей по типу кузова и производителю:

body_style convertible hardtop hatchback sedan wagon
make
honda NaN NaN 1970.0 2289.0 2024.0
mazda NaN NaN 2254.0 2361.0 NaN
mitsubishi NaN NaN 2377.0 2394.0 NaN
nissan NaN 2008.0 2740.0 2238.0 2452.0
subaru NaN NaN 2137.0 2314.0 2454.0
toyota 2975.0 2585.0 2370.0 2338.0 2708.0
volkswagen 2254.0 NaN 2221.0 2342.0 2563.0
volvo NaN NaN NaN 3023.0 3078.0

Используя aggfunc=’mean’ и values=df.curb_weight , мы говорим pandas применить функцию mean к весу снаряжения для всех комбинаций данных. Под капотом pandas группирует все значения вместе по make и body_style , а затем вычисляет среднее значение. В тех областях, где нет машины с такими значениями, отображается NaN . В этом примере я также округляю результаты.

Мы видели, как подсчитывать значения и определять средние значения. Однако есть еще один распространенный случай суммирования данных, когда мы хотим понять, сколько процентов от общего числа составляет каждая комбинация. Это можно сделать с помощью параметра normalize :

body_style convertible hardtop hatchback sedan wagon
make
honda 0.000000 0.000000 0.054688 0.039062 0.007812
mazda 0.000000 0.000000 0.078125 0.054688 0.000000
mitsubishi 0.000000 0.000000 0.070312 0.031250 0.000000
nissan 0.000000 0.007812 0.039062 0.070312 0.023438
subaru 0.000000 0.000000 0.023438 0.039062 0.031250
toyota 0.007812 0.023438 0.109375 0.078125 0.031250
volkswagen 0.007812 0.000000 0.007812 0.070312 0.007812
volvo 0.000000 0.000000 0.000000 0.062500 0.023438

Эта таблица показывает нам, что 2.3% от общей численности населения составляют хардтопы Toyota , а 6.25% — седаны Volvo .

Параметр normalize еще умнее, т.к. он позволяет выполнять сводку отдельно для столбцов или строк.

Например, если мы хотим увидеть, как стили корпуса распределяются по маркам:

body_style convertible hardtop hatchback sedan wagon
make
honda 0.0 0.00 0.142857 0.087719 0.0625
mazda 0.0 0.00 0.204082 0.122807 0.0000
mitsubishi 0.0 0.00 0.183673 0.070175 0.0000
nissan 0.0 0.25 0.102041 0.157895 0.1875
subaru 0.0 0.00 0.061224 0.087719 0.2500
toyota 0.5 0.75 0.285714 0.175439 0.2500
volkswagen 0.5 0.00 0.020408 0.157895 0.0625
volvo 0.0 0.00 0.000000 0.140351 0.1875

Взглянув только на колонку кабриолетов, можно увидеть, что 50% автомобилей с откидным верхом производится Toyota , а остальные 50% — Volkswagen .

Мы можем сделать то же самое по строкам:

body_style convertible hardtop hatchback sedan wagon
make
honda 0.000000 0.000000 0.538462 0.384615 0.076923
mazda 0.000000 0.000000 0.588235 0.411765 0.000000
mitsubishi 0.000000 0.000000 0.692308 0.307692 0.000000
nissan 0.000000 0.055556 0.277778 0.500000 0.166667
subaru 0.000000 0.000000 0.250000 0.416667 0.333333
toyota 0.031250 0.093750 0.437500 0.312500 0.125000
volkswagen 0.083333 0.000000 0.083333 0.750000 0.083333
volvo 0.000000 0.000000 0.000000 0.727273 0.272727

Это представление данных показывает, что из автомобилей Mitsubishi в этом наборе данных 69.23% — это хэтчбеки, а оставшаяся часть ( 30.77% ) — седаны.

Я надеюсь, вы согласитесь с тем, что эти приемы могут быть полезны во многих видах анализа.

Одна из наиболее полезных особенностей кросс-таблицы заключается в том, что вы можете передавать несколько столбцов фрейма данных, а pandas выполняет всю группировку за вас.

Например, если мы хотим увидеть, как данные распределяются по переднему приводу ( fwd ) и заднему приводу ( rwd ), мы можем включить столбец drive_wheels , включив его в список допустимых столбцов во втором аргументе crosstab :

body_style convertible hardtop hatchback sedan wagon
drive_wheels fwd rwd fwd rwd 4wd fwd rwd 4wd fwd rwd 4wd fwd rwd
make
honda 0 0 0 0 0 7 0 0 5 0 0 1 0
mazda 0 0 0 0 0 6 4 0 5 2 0 0 0
mitsubishi 0 0 0 0 0 9 0 0 4 0 0 0 0
nissan 0 0 1 0 0 2 3 0 9 0 0 3 0
subaru 0 0 0 0 1 2 0 2 3 0 2 2 0
toyota 0 1 0 3 0 8 6 0 7 3 2 1 1
volkswagen 1 0 0 0 0 1 0 0 9 0 0 1 0
volvo 0 0 0 0 0 0 0 0 0 8 0 0 3

То же самое можно сделать и с индексом:

Body Style convertible hardtop hatchback sedan wagon
Drive Type 4wd fwd rwd 4wd fwd rwd 4wd fwd rwd 4wd fwd rwd 4wd fwd rwd
Auto Manufacturer Doors
honda four 0 0 0 0 0 0 0 0 0 0 4 0 0 1 0
two 0 0 0 0 0 0 0 7 0 0 1 0 0 0 0
mazda four 0 0 0 0 0 0 0 1 0 0 4 2 0 0 0
two 0 0 0 0 0 0 0 5 4 0 0 0 0 0 0
mitsubishi four 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0
two 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0
nissan four 0 0 0 0 0 0 0 1 0 0 5 0 0 3 0
two 0 0 0 0 1 0 0 1 3 0 4 0 0 0 0
subaru four 0 0 0 0 0 0 0 0 0 2 3 0 2 2 0
two 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0
toyota four 0 0 0 0 0 0 0 6 0 0 7 1 2 1 1
two 0 0 1 0 0 3 0 2 6 0 0 2 0 0 0
volkswagen four 0 0 0 0 0 0 0 0 0 0 7 0 0 1 0
two 0 1 0 0 0 0 0 1 0 0 2 0 0 0 0
volvo four 0 0 0 0 0 0 0 0 0 0 0 8 0 0 3
two 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Я ввел пару дополнительных параметров для управления способом отображения вывода.

Во-первых, я задал определенные rownames и colnames , которые хочу включить в вывод. Это чисто для целей отображения, но может быть полезно, если имена столбцов во фрейме данных не конкретны.

Затем я использовал dropna=False в конце вызова функции. Причина, по которой я это включил, состоит в том, что я хотел убедиться, что включены все строки и столбцы, даже если в них все нули. Если бы я не включил его, то последний Volvo , двухдверный ряд, был бы исключен из таблицы.

Я хочу сделать последнее замечание по поводу этой таблицы. Она содержит много информации и может быть слишком трудной для интерпретации. Вот тут-то и приходит на помощь искусство науки о данных (или любого анализа), и вам нужно определить лучший способ представления данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *