#python #pandas #dataframe
Вопрос:
Я пытаюсь создать новый столбец на основе элементов, присутствующих в другом столбце фрейма данных. Например:
|Sales |
|------------------------------------------ |
|{id: 1, name: pen, sold: 250, profit:10} |
|{id: 3, name: eraser, sold: 47, profit:0.8}|
|{id: 7, name: book, sold: 780, profit:85} |
чтобы выглядеть как
Sales | name | sold |
--------------------------------------------|------|------|
{id: 1, name: pen, sold: 250, profit:10} |pen | 250 |
{id: 3, name: eraser, sold: 47, profit:0.8} |eraser| 47 |
{id: 7, name: book, sold: 780, profit:85} |book | 780 |
Комментарии:
1. каков результат
type(df.loc[0,'Sales'])
?2. это типа дикт
Ответ №1:
вы можете использовать str
средство доступа:
df['name']=df['Sales'].str['name']
df['sold']=df['Sales'].str['sold']
выход:
Продажи | Имя | продано |
---|---|---|
{id: 1, имя: ручка, продано: 250, прибыль:10} | ручка | 250 |
{идентификатор: 3, имя: ластик, продано: 47, прибыль:0,8} | ластик | 47 |
{идентификатор: 7, название: книга, продано: 780, прибыль:85} | книга | 780 |
Комментарии:
1. Спасибо за
str
аксессуар. Это не показывает предупреждения.
Ответ №2:
Должно сработать следующее:
df['name'] = df['Sales'].apply(lambda x: x.get('name')
df['sold'] = df['Sales'].apply(lambda x: x.get('sold'))