Как преобразовать список python в pandas Dataframe в python - PullRequest
1 голос
/ 09 июля 2020

У меня есть этот python list, и мне нужно преобразовать его в pandas dataframe.

Вот как выглядит мой список:

thisdict = {}

thisdict["Column1"] = 1
thisdict["Column2"] = 2

thisdict # this print

{'Column1': 1, 'Column2': 2}

И Мне нужно преобразовать это в pandas фрейм данных.

Я пробовал:

df = pd.DataFrame(thisdict)

, и я получил следующую ошибку:

ValueError: при использовании все скалярные значения, вы должны передать индекс

Кто-нибудь может мне помочь?

Ответы [ 4 ]

1 голос
/ 09 июля 2020

Из вашего вопроса непонятно, чего вы хотите, но вот несколько вариантов; Думаю, вам наверняка захочется второй вариант. Для этого убедитесь, что вы используете список при построении словаря.

Option-1

thisdict = {}
thisdict["Column1"] = 1
thisdict["Column2"] = 2
print(thisdict)

print("Below is Option1:")
df = pd.DataFrame(list(thisdict.items()),columns = ['ColumnA','ColumnB'])
display(df)

enter image description here

Option-2

thisdict = {}
thisdict["Column1"] = [1]
thisdict["Column2"] = [2]
print(thisdict)

print("Below is Option2:")
df = pd.DataFrame(thisdict)
display(df)

введите описание изображения здесь

1 голос
/ 09 июля 2020

Если по какой-то причине вы не хотите делать столбцы в виде списков, вы можете сделать это.

df = pd.DataFrame(pd.Series(thisdict)).transpose()
1 голос
/ 09 июля 2020

Если ваш словарь переходит в одну строку фрейма данных, вам нужно передать список с одним элементом.

pd.DataFrame(thisdict, index=[0])

Вывод:

   Column1  Column2
0        1        2
1 голос
/ 09 июля 2020

Вы должны назначить столбец в виде списков в своем коде.

Попробуйте заменить строки 2 и 3 на:

thisdict["Column1"] = [1]
thisdict["Column2"] = [2]

Полный код:

thisdict = {}
thisdict["Column1"] = [1]
thisdict["Column2"] = [2]
df = pd.DataFrame(thisdict)

Вывод:

    Column1 Column2
0         1       2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...