Как заполнить столбец pandas словарем?

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

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

Как заполнить столбец pandas словарем?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@camren 

Для заполнения столбца pandas словарем нужно создать объект типа Series, в котором ключами будут индексы столбца, а значениями - соответствующие значения из словаря.


Вот пример кода:

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

# Создание словаря
my_dict = {'A': 1, 'B': 2, 'C': 3}

# Создание пустого DataFrame
df = pd.DataFrame()

# Перевод словаря в Series и заполнение столбца
df['Column'] = pd.Series(my_dict)

# Вывод DataFrame
print(df)


Это создаст DataFrame с одним столбцом "Column" и значениями из словаря:

1
2
3
4
   Column
A     1
B     2
C     3


При этом, если словарь имеет больше значений, чем размер столбца, то ошибка будет возникать.

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

от pauline , 7 месяцев назад

@camren 

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


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


Например:

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

# Создание словаря
my_dict = {'A': 1, 'B': 2, 'C': 3}

# Создание DataFrame
df = pd.DataFrame(index=['A', 'B', 'C', 'D']) # Пустой столбец для D

# Создание Series с нужными индексами
s = pd.Series(my_dict)
s = s.reindex(df.index)

# Назначение значений Series столбцу DataFrame
df['Column'] = s


В этом примере, столбец "Column" будет содержать значения только для строк 'A', 'B', 'C', так как для строки 'D' значение не было определено в словаре.