Обновление строк и столбцов в Pandas

Давайте разберемся, как обновлять строки и столбцы в Python pandas.

В реальном мире чаще всего мы получаем неготовые к анализу наборы данных. В них может быть много несоответствий, недопустимых значений, неправильных меток и многого другого. Учитывая это, необходимо обновить эти значения, чтобы добиться единообразия данных. В этом руководстве мы рассмотрим, как обновлять строки и столбцы в python с помощью pandas. Не теряя времени на вступление, давайте перейдем к действию!

1. Создайте Pandas Dataframe

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

Для создания датафрейма pandas предлагает функцию pd.DataFrame. Давайте посмотрим, как она работает.

#create a dictionary 

import pandas as pd

fruit_data = {"Fruit": ['Apple','Avacado','Banana','Strawberry','Grape'],"Color": ['Red','Green','Yellow','Pink','Green'],
"Price": [45, 90, 60, 37, 49]
}

fruit_data

Здесь мы создали словарь python с некоторыми значениями данных в нем. Теперь нам нужно превратить этот словарь в pandas dataframe.

#Dataframe 

data = pd.DataFrame(fruit_data)
data

Используя функцию pd.DataFrame от pandas, вы можете легко превратить словарь в pandas dataframe. Теперь наш набор данных готов к выполнению дальнейших операций.

2. Обновление столбцов

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

Итак, в качестве первого шага мы рассмотрим, как можно обновить/изменить названия столбцов в наших данных.

#update the column name

data.rename(columns = {'Fruit':'Fruit Name'})

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

#multile column update

data.rename(columns = {'Fruit':'Fruit Name','Colour':'Color','Price':'Cost'})

Таким образом, вы можете обновить все колонки одновременно.

3. Обновление регистра имен столбцов

При работе с набором данных с большим количеством столбцов вы могли столкнуться с несогласованностью в их именах.

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

Вы можете преобразовать их в верхний или нижний регистр.

#lower case

data.columns.str.lower()
data

Теперь все наши столбцы находятся в нижнем регистре.

4. Обновление значений строк

Как и обновление столбцов, обновление значения строки также очень просто. Сначала нужно найти значение строки, а затем обновить его.

Для поиска строк можно использовать функцию pandas loc.

#updating rows

data.loc[3]
Fruit    Strawberry
Color          Pink
Price            37
Name: 3, dtype: object

Мы нашли строку номер 3, в которой содержится информация о фрукте “Клубника”. Теперь мы должны обновить этот ряд новым фруктом по имени Ананас и его данными.

Поехали!

#update

data.loc[3] = ['PineApple','Yellow','48']
data

Вот и все. Надеюсь, вы тоже находите этот способ достаточно простым. Теперь предположим, что вам нужно обновить только несколько элементов в ряду, а не весь ряд. Каков подход к этому?

#update specific values

data.loc[3, ['Price']]
Price    48
Name: 3, dtype: object

Нам нужно обновить только цену фрукта, расположенного в 3-м ряду. Мы узнаем, что текущая цена этого фрукта равна 48, но нам нужно изменить ее на 65. Давайте сделаем это.

#updating 

data.loc[3, ['Price']] = [65]
data

Мы обновили цену фрукта Pineapple до 65 всего одной строкой кода python. Вот как просто это работает.

5. Обновление строк и столбцов на основе условия

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

Давайте определим наше условие.

#Condition

updated = data['Price'] > 60
updated

Мы собираемся сделать следующее: обозначить фрукты, которые стоят выше 60, как “Дорогие”.

0    False
1     True
2    False
3     True
4    False
Name: Price, dtype: bool

Исходя из вывода, у нас есть 2 фрукта, цена которых превышает 60. Давайте обозначим эти фрукты как дорогие в данных.

#Updating

data.loc[updated, 'Price'] = 'Expensive'
data

Поверьте, вы великолепны :).

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

В завершение

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

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

На этом пока все. Счастливого Python!!!

Перевод статьи «How to Update Rows and Columns Using Python Pandas».