Индексирование и удаление столбцов DataFrame - PullRequest
0 голосов
/ 25 апреля 2020

У меня проблемы с пониманием, почему в первой строке нужно добавить row. Например: row['G1'].

Однако во второй строке, когда мы отбрасываем их, мы не используем row['G1'], а просто помещаем ['G1'].

Также, что делает r['pass'] = делать? Зачем нам нужен ['pass'] после r?

Код:

import pandas as pd

r = pd.read_csv("Data.csv", sep = ';')
len(r)
r['pass'] = r.apply(lambda row: 1 if (row['G1'] + row['G2'] + row['G3']) >= 35 else 0, axis=1)
r = r.drop(['G1', 'G2', 'G3'], axis=1)
r.head()

1 Ответ

1 голос
/ 25 апреля 2020

Первое, что вам нужно понять, это то, что r - это фрейм данных, и к столбцам в фрейме данных можно получить доступ, выполнив df[column_name]. Итак, r['pass'] означает, что вы добавляете новый столбец с именем pass в свой фрейм данных r, в который будут добавляться значения в соответствии с условием в операторе apply.

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

во второй строке, когда мы отбрасываем их, мы не используйте строку ['G1'], и мы просто помещаем ['G1']

Если вы посмотрите на документацию DataFrame.drop , вы увидите, что она использует DataFrame в начале, за которым следует .drop(). Итак, в данном случае это: r.drop(). Когда вы делаете r.drop(['G1', 'G2', 'G3'], axis=1), вы выбираете список столбцов, который вы хотите удалить (в данном случае ['G1', 'G2', 'G3']). И axis=1 означает, что вы хотите удалить значения из столбцов.

Для получения дополнительной информации ознакомьтесь с документацией.

...