Как обновить pandas dataframe данными из словаря?

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

от josie , в категории: Python , год назад

Как обновить pandas dataframe данными из словаря?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от dorothea_stoltenberg , год назад

@josie 

Чтобы обновить Pandas DataFrame данными из словаря, можно использовать метод update(). Этот метод позволяет обновить значения существующих столбцов DataFrame на основе ключей словаря. Если ключи словаря отсутствуют в DataFrame, то они будут добавлены как новые столбцы.


Вот пример кода, иллюстрирующий, как обновить DataFrame данными из словаря:

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

# Создаем исходный DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Создаем словарь с новыми данными
data = {'A': [7, 8, 9], 'C': [10, 11, 12]}

# Обновляем DataFrame данными из словаря
df.update(pd.DataFrame(data))

# Выводим обновленный DataFrame
print(df)


Этот код выведет следующий результат:

1
2
3
4
   A  B     C
0  7  4  10.0
1  8  5  11.0
2  9  6  12.0


Обратите внимание, что update() обновляет значения столбцов только для существующих индексов. Если в словаре есть дополнительные ключи, которые отсутствуют в DataFrame, эти значения не будут включены в обновление.

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

от stephania , 6 месяцев назад

@josie 

Если вы хотите обновить DataFrame данными из словаря, сохраняя при этом все строки и столбцы, вы можете объединить DataFrame и словарь с помощью метода join() или merge(). Вот примеры использования:


Используя метод join():

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

# Создаем исходный DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Создаем словарь с новыми данными
data = {'A': [7, 8, 9], 'C': [10, 11, 12]}

# Преобразуем словарь в DataFrame
new_data = pd.DataFrame(data)

# Обновляем DataFrame данными из словаря
df = df.join(new_data)

# Выводим обновленный DataFrame
print(df)


Используя метод merge():

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

# Создаем исходный DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# Создаем словарь с новыми данными
data = {'A': [7, 8, 9], 'C': [10, 11, 12]}

# Преобразуем словарь в DataFrame
new_data = pd.DataFrame(data)

# Обновляем DataFrame данными из словаря
df = pd.merge(df, new_data, on='A', how='left')

# Выводим обновленный DataFrame
print(df)


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