Эффективные методы обновления фрейма данных Python без создания новых строк

При работе с DataFrames Python часто необходимо обновить существующие строки на основе определенных условий без создания новых строк. В этой статье будут рассмотрены несколько эффективных методов с примерами кода для решения этой задачи. Используя возможности библиотеки Pandas, вы можете легко обновлять значения DataFrame, сохраняя при этом целостность данных и производительность.

Метод 1: использование DataFrame.loc[]
Пример кода:

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, 30, 35],
        'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
# Update the 'Salary' column where 'Name' is 'Alice'
df.loc[df['Name'] == 'Alice', 'Salary'] = 65000
print(df)

Метод 2: использование DataFrame.at[]
Пример кода:

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, 30, 35],
        'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
# Update the 'Age' column where 'Name' is 'Bob'
df.at[df['Name'] == 'Bob', 'Age'] = 40
print(df)

Метод 3: применение DataFrame.update()
Пример кода:

import pandas as pd
# Create a sample DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, 30, 35],
        'Salary': [50000, 60000, 70000]}
df = pd.DataFrame(data)
# Create an updated DataFrame with new values
new_data = {'Age': {1: 31, 2: 36}}
new_df = pd.DataFrame(new_data)
# Update the original DataFrame using DataFrame.update()
df.update(new_df)
print(df)

Метод 4: объединение DataFrame.mask() и DataFrame.fillna()
Пример кода:

import pandas as pd
import numpy as np
# Create a sample DataFrame with missing values
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, np.nan, 35],
        'Salary': [50000, np.nan, 70000]}
df = pd.DataFrame(data)
# Create a mask for the rows to update
mask = df['Name'] == 'Alice'
# Update the 'Age' and 'Salary' columns with new values
df['Age'] = df['Age'].mask(mask, 30)
df['Salary'] = df['Salary'].mask(mask, 65000)
# Fill remaining missing values with appropriate values
df.fillna({'Age': 0, 'Salary': 0}, inplace=True)
print(df)

Эффективное обновление фреймов данных Python без создания новых строк имеет решающее значение для поддержания точных и актуальных данных. В этой статье мы рассмотрели несколько методов, в том числе использование DataFrame.loc[], DataFrame.at[], DataFrame.update() и сочетание DataFrame.mask() с DataFrame.fillna(). Используя эти методы, вы можете легко обновлять определенные строки в DataFrame, обеспечивая при этом целостность данных и оптимальную производительность.