#python-3.x #pandas #dataframe
Вопрос:
Я пытаюсь построить фрейм данных из словаря переназначить столбцы, но получаю пустой фрейм данных. Пожалуйста, сообщите, что я делаю не так:
import pandas as pd
pd.DataFrame({'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'Age' : [23, 21, 22, 21],
'University' : ['BHU', 'JNU', 'DU', 'BHU']},
columns = list('ABC'))
Комментарии:
1. удалить
columns = list('ABC')
деталь2. @AnuragDabas но я хочу сохранить его или переименовать, могу ли я сделать это на лету?
Ответ №1:
Вы определяете имена столбцов дважды. Один раз в качестве ключей словаря и один раз с columns
параметром, который конфликтует. Если вы хотите переименовать свои столбцы [«A», «B», «C»], сделайте это после:
df = pd.DataFrame({'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'Age' : [23, 21, 22, 21],
'University' : ['BHU', 'JNU', 'DU', 'BHU']},
)
df.columns = list('ABC')
выход:
A B C
0 Ankit 23 BHU
1 Aishwarya 21 JNU
2 Shaurya 22 DU
3 Shivangi 21 BHU
Наиболее эффективным было бы сделать это напрямую:
df = pd.DataFrame({'A' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'B' : [23, 21, 22, 21],
'C' : ['BHU', 'JNU', 'DU', 'BHU']},
)
Если вам действительно нужно ввести словарь таким, какой он есть, другой вариант -:
my_dict = {'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'Age' : [23, 21, 22, 21],
'University' : ['BHU', 'JNU', 'DU', 'BHU']}
df = pd.DataFrame(my_dict).rename(columns=dict(zip(my_dict, list('ABC'))))
Комментарии:
1. слишком быстро я собираюсь опубликовать это
dict(zip(my_dict, list('ABC')
2. @AnuragDabas я думаю, что мы действительно опубликовали в одну и ту же секунду, в любом случае 1 😉
Ответ №2:
Вы можете попробовать сохранить свой dict в переменной и создать фрейм данных из значений dict, потому что если вы используете словарь по умолчанию, ключи словаря действуют как имя столбца:
d={'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'Age' : [23, 21, 22, 21],
'University' : ['BHU', 'JNU', 'DU', 'BHU']}
#Finally:
df=pd.DataFrame(d.values(),index=list('ABC')).T
или
вы можете переименовать свои столбцы после создания фрейма данных
df=pd.DataFrame({'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'],
'Age' : [23, 21, 22, 21],
'University' : ['BHU', 'JNU', 'DU', 'BHU']})
df.columns=list('ABC')