Наука о данных

Топ-список быстрых методов Pandas

Эти полезные приемы сэкономят ваше время

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

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

df = [
      ['001', 101, 2000, 'red'], 
      ['002', 99, 2080, 'blue'], 
      ['003', 94, 1980, 'yellow'], 
      ['004', 107, 2020, 'red'], 
]
df
import pandas as pd
df = pd.DataFrame(df)
df

Редактирование заголовков столбцов

К сожалению, столбцы просто сохраняются как 0, 1, 2, 3. Для редактирования заголовков я буду использовать следующую строку кода:

df.columns = ['id', 'radius', 'weight', 'color']

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

Добавление индекса

По умолчанию DataFrame имеет числовой индекс. Однако вы можете изменить его в соответствии с вашими потребностями.

df.index = df['id']
df.pop('id')
df

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

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

Это моя любимая функция. С помощью функции apply и lambda я могу редактировать всю информацию в наборе данных в соответствии с моими инструкциями.

Например, я хочу добавить удвоенное значение веса в столбец радиуса.

df['radius'] = df['weight'].apply(lambda x : x+df['radius'])
df

Удаление n строки

df = df.drop(df.index[[0]])
df

Преобразование серии в DataFrame

Что может показаться непрактичным - использование Pandas автоматической настройки преобразования одного столбца в серию.

row = df['radius']
row

Теперь все настройки и методы, которые я мог бы применить к DataFrame, недействительны, потому что он, по сути, ведет себя как массив NumPy.

row = pd.DataFrame(df['radius'])
row

Как видите, вы можете преобразовать один столбец (серию) обратно в DataFrame.

Создание копии набора данных

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

a = df
a

Я не буду изменять элемент:

a['color'][0] = 'black'
a

Однако, если мы посмотрим на df, мы НЕ ИЗМЕНИЛИ НАПРЯМУЮ:

df

Мы видим, что оба набора данных были изменены. Это потому, что Pandas работает, присваивая ссылки новым переменным.

Чтобы решить эту проблему:

a = df.copy()

Если мы проведем такой же эксперимент, вы увидите, что только будет изменено.

Поддержание только строк с определенным значением

Теперь позвольте мне предположить, что я хочу сохранить только те строки, которые имеют значение веса выше 2000.

df = df.loc[df['weight'] > 2000]
df