Иногда вам может потребоваться объединить два кадра данных по столбцу или по строке. Для этого действия вы можете использовать функцию concat. Это можно сделать с помощью следующего кода.
питон
xxxxxxxxxx
1
#row base concatenation
2
pd.concat([df1, df2])
3
#column base concatentation
5
pd.concat([df1, df2], axis=1)
6
Для базы столбцов вы должны задать параметр axis = 1. Я хочу объяснить эту функциональность, подготовив простую таблицу пропущенных значений.
Вам также может понравиться: Учебник по PySpark DataFrame: Введение в DataFrames
Для этого я снова буду использовать набор данных, о котором я говорил в своей статье « Функции Pandas Dataframe» . Сначала мы должны загрузить данные.
xxxxxxxxxx
1
import pandas as pd
2
import numpy as np
3
#load data
5
df = pd.read_csv("train.csv")
После загрузки данных мы рассчитаем некоторую информацию о фрейме данных и в конце объединяем их в фрейме данных.
Во-первых, мы можем вычислить нулевой счетчик каждого столбца с помощью следующего кода и присвоить его переменной.
питон
xxxxxxxxxx
1
missing_value_cnt = df.isnull().sum()
2
missing_value_cnt
Это даст следующий результат. Это будет наш первый столбец:
питон
xxxxxxxxxx
1
percentage = 100 * df.isnull().sum() / len(df)
2
percentage
Этот расчет даст процент от нулевых значений в общих значениях столбца.
Наконец, типы данных также могут быть добавлены в нашу таблицу пропущенных значений:
питон
xxxxxxxxxx
1
data_types = df.dtypes
2
data_types
Три набора данных дают нам данные одномерного ряда. Мы сопоставим их для создания нашего окончательного фрейма данных:
питон
xxxxxxxxxx
1
missing_values_table = pd.concat([missing_value_cnt, percentage, data_types], axis=1)
Как видите, он имеет все значения, поскольку нам нужны только пропущенные значения, мы должны отфильтровать набор результатов. Кроме того, нет имен столбцов, чтобы уточнить, какой тип данных у столбца, мы также должны переименовать все столбцы. Это можно сделать с помощью следующих кодов.
питон
xxxxxxxxxx
1
missing_values_table = mis_val_table.rename(columns = {0 : 'Missing Values',
2
1 : 'Percentage',
3
2 : 'Data Types'})
И теперь пришло время отфильтровать фрейм данных, чтобы просто перечислить статистику пропущенных значений для загруженного фрейма данных. Для фильтрации данных можно использовать iloc и loc.
Выбор строк и столбцов по Loc и ILoc
Данные могут быть выбраны из фреймов данных с помощью опций loc и iloc:
Loc используется для выбора строк и столбцов по индексу и метке значения, столбцы могут быть выбраны по именам столбцов,
Iloc используется для выбора строк и столбцов по их индексам.
Вот несколько примеров, прежде чем продолжить наш пример отсутствующих таблиц.
питон
xxxxxxxxxx
1
#let's call the sample dataframe as df:
2
df.iloc[0] # it gets the first row of the df
3
df.iloc[:0] # it gets the first column of the df
4
df.iloc[0:3] # first three rows of the df.
6
df.iloc[,0:2] # first two columns of the df with all rows
7
Примеры по loc: одним из способов запроса данных по loc является использование индексов на фрейме данных
питон
xxxxxxxxxx
1
df.set_index('first_name', inplace=True) # assume the df has first_name column
2
df.loc(['zehra'])
Приведенный выше запрос дает данные из df, где столбец first_name имеет значения "zehra". или вы можете запросить по условным выражениям.
питон
xxxxxxxxxx
1
df.loc[df['first_name'] == 'zehra', 0:2]
Получает все строки для значения "zehra" с первыми двумя столбцами в df.
Вот наша последняя таблица пропущенных значений для нашего фрейма данных.
питон
xxxxxxxxxx
1
missing_values_table = missing_values_table[
2
missing_values_table.iloc[:,1] != 0].sort_values(
3
'Percentage', ascending=False).round(1)
4
missing_values_table
Приведенный выше код сначала фильтрует данные на основе столбца Процент, а затем сортирует по этому столбцу в порядке убывания. «Таблица пропущенных значений» предоставляет простую читаемую таблицу для пропущенных значений вашего фрейма данных.
Дальнейшее чтение
Краткий обзор Pandas DataFrames