Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Перевод СlojurePy_1nav.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
774.32 Кб
Скачать

Обработка столбцов

До этого в этой главе мы уменьшили размер наших данных при помощи фильтрации строк и столбцов. Нередко напротив требуется добавить строки в набор данных. Библиотека Pandas обеспечивает эту функциональность несколькими способами.

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

В следующем примере приведены варианты действий, которые будут использоваться в дальнешем. Для иллюстрации сгенерируем синтетическую таблицу данных в форме 3 x 2:

'''Операции над столбцами таблицы данных'''

# сгенерировать синтетическую таблицу данных

sp.random.seed(0)

df = pd.DataFrame(sp.random.randn(3, 2), columns=['A', 'B'])

 

A

B

0

1.764052

0.400157

1

0.978738

2.240893

2

1.867558

-0.977278

# заменить все значения в столбце новым значением

df['A'] = 1

 

A

B

0

1

0.400157

1

1

2.240893

2

1

-0.977278

# заменить все значения в столбце новой последовательностью

df['A'] = pd.Series(sp.random.randn(5))

 

A

B

0

0.950088

0.400157

1

-0.151357

2.240893

2

-0.103219

-0.977278

# заменить все значения в столбце, применив функцию

df['A'] = df.apply(lambda x: max(x['A'], x['B']), axis=1)

 

A

B

0

0.950088

0.400157

1

2.240893

2.240893

2

-0.103219

-0.977278

# заменить значение в заданной позиции столбца

df['A'][2] = 1

 

A

B

0

0.950088

0.400157

1

2.240893

2.240893

2

1.000000

-0.977278

# добавить производный столбец на основе существующих

df['C'] = df['A'] + df['B']

 

A

B

C

0

0.950088

0.400157

1.350246

1

2.240893

2.240893

4.481786

2

1.000000

-0.977278

0.022722

# добавить производный столбец, применив функцию

df['D'] = df.apply( lambda x: min(x['A'], x['B']), axis=1 )

 

A

B

C

D

0

0.950088

0.400157

1.350246

0.400157

1

2.240893

2.240893

4.481786

2.240893

2

1.000000

-0.977278

0.022722

-0.977278

Именованный аргумент axis=1 назначает для выполняемых операций вертикальную ось, т.е. они применяются к столбцу.

Далее мы покажем, как добавлять производный столбец на реальном примере. В 2010 г. всеобщие выборы в Великобритании привели к "подвисшему" парламенту, в котором ни одна из партий не получила абсолютного большинства. В результате была образована коалиция между Консервативной и Либерально-демократической партиями. В следующем разделе мы узнаем, сколько людей проголосовало за обе партии, и какой процент от проголосовавших они составили.