Конвертировать список в столбец в Python Dataframe - PullRequest
0 голосов
/ 06 июля 2018

У меня есть датафрейм df, который выглядит так:

CustomerId    Age
1              25
2              18
3              45
4              57
5              34

У меня есть список с названием «Цена», который выглядит так:

Price = [123,345,1212,11,677]

Я хочу добавить этот список в фрейм данных. Вот мой код:

df['Price'] = Price

Кажется, это работает, но когда я печатаю фрейм данных, поле с именем "Цена" содержит всю информацию метаданных, такую ​​как Имя, Тип ..., а также значение цены.

Как создать столбец с именем «Цена», содержащий только значения прайс-листа, чтобы кадр данных выглядел следующим образом:

CustomerId    Age   Price
1              25   123
2              18   345
3              45   1212
4              57   11
5              34   677

Ответы [ 4 ]

0 голосов
/ 14 ноября 2018

Я скопировал, вставил ваш пример в фрейм данных, используя pandas.read_clipboard, а затем добавил следующий столбец:

import pandas as pd
df = pd.read_clipboard()
Price = [123,345,1212,11,677]
df.loc[:,'Price'] = Price
df

Генерация этого:

CustomerId  Age Price
0   1   25  123
1   2   18  345
2   3   45  1212
3   4   57  11
4   5   34  677
0 голосов
/ 06 июля 2018

По моему мнению, самое элегантное решение - использовать assign:

df.assign(Price=Price)
CustomerId    Age   Price
1              25   123
2              18   345
3              45   1212
4              57   11
5              34   677

обратите внимание, что присваивание фактически возвращает DataFrame. Назначение создает новый столбец «Цена» (слева Цена) с содержимым списка Цена (справа Цена)

0 голосов
/ 14 ноября 2018
import pandas as pd
df['Price'] = pd.Series(Price)

если вы используете это, вы не получите ошибку, если у вас меньше значений в ряду, чем в вашем фрейме данных, в противном случае вы получите ошибку, которая сообщит, что у вас меньше значений в списке, и которую нельзя добавить,

0 голосов
/ 06 июля 2018

Вы можете добавить ряд панд в виде столбца.

import pandas as pd
df['Price'] = pd.Series(Price)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...