Как пройтись по pandas.dataframe и изменить данные?

Пользователь

от narciso , в категории: Python , 2 месяца назад

Как пройтись по pandas.dataframe и изменить данные?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hanna_jacobson , 17 дней назад

@narciso 

Чтобы пройтись по DataFrame и изменить данные, можно использовать различные методы и функции библиотеки pandas.


Один из подходов - использовать методы iterrows или itertuples.


Метод iterrows позволяет пройтись по DataFrame в цикле и получить каждую строку в виде кортежа (индекс строки, значения в столбцах). Для изменения данных, можно обратиться к конкретному элементу по индексу и столбцу и присвоить новое значение.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd

# Создание DataFrame
data = {'Имя': ['Иван', 'Мария', 'Алексей'],
        'Возраст': [25, 30, 35]}
df = pd.DataFrame(data)

# Проход по DataFrame и изменение данных
for index, row in df.iterrows():
    # Изменение значения в столбце "Возраст"
    df.at[index, 'Возраст'] = row['Возраст'] + 1

print(df)


Вывод:

1
2
3
4
       Имя  Возраст
0     Иван       26
1    Мария       31
2  Алексей       36


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


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd

# Создание DataFrame
data = {'Имя': ['Иван', 'Мария', 'Алексей'],
        'Возраст': [25, 30, 35]}
df = pd.DataFrame(data)

# Проход по DataFrame и изменение данных
for row in df.itertuples(index=False):
    # Изменение значения в столбце "Возраст"
    df['Возраст'] = [age + 1 for age in df['Возраст']]

print(df)


Вывод:

1
2
3
4
       Имя  Возраст
0     Иван       26
1    Мария       31
2  Алексей       36


Оба метода, iterrows и itertuples, позволяют модифицировать данные в DataFrame, однако они могут быть не самыми эффективными для больших наборов данных. Если вам нужно выполнять сложные преобразования, существуют и другие методы, такие как apply, которые могут быть более эффективными.