Я хотел бы разбить фрейм данных, который включает в себя 2 типа данных (владельцев брендов и продуктов), и на 2 фрейма данных.
Исходный фрейм данных:
>>> products
product_id brand_owner product_name
0 344606 Cargill A
1 344607 Red Gold B
2 344608 FooBar C
3 344609 Red Gold D
4 344610 Cargill E
Мне нравится Извлечь brand_owner в другой фрейм данных, очень похоже на нормализацию базы данных:
>>> brand_owners = pd.DataFrame(branded_foods['brand_owner'].unique())
>>> brand_owners
0
0 Cargill
1 Kellogg Company Us
2 Kashi Us
3 Red Gold
4 Conagra Brands
... ...
Я дал его строкам идентификатор (опять же, как первичный ключ базы данных)
>>> brand_owners.index += 1
>>> brand_owners['id'] = brand_owners.index
>>> brand_owners
0 id
1 Cargill 1
2 Kellogg Company Us 2
3 Kashi Us 3
4 Red Gold 4
5 Conagra Brands 5
... ... ...
[25202 rows x 2 columns]
>>> brand_owners.columns = ['name', 'id']
>>> brand_owners
name id
1 Cargill 1
2 Kellogg Company Us 2
3 Kashi Us 3
4 Red Gold 4
5 Conagra Brands 5
... ... ...
Теперь я хочу получить эти идентификаторы возвращаются в исходный фрейм данных, поэтому будет выглядеть так:
product_id brand_owner product_name
0 344606 1 A
1 344607 4 B
2 344608 45 C
3 344609 4 D
4 344610 1 E
Как сделать это обновление в Pandas: обновить продукты p установить p.brand_owner = (выберите идентификатор от brand_owners b, где b.name = p.brand_owner)