Изменение Pandas DataFrame с индексом Integer

90
6

Я преобразовал Python dict в pandas dataframe:

dict = {
u'erterreherh':
{
u'account': u'rgrgrgrg',
u'data': u'192.168.1.1',

},
u'hkghkghkghk':
{
u'account': u'uououopuopuop',
u'data': '192.168.1.170',
},
}

df = pd.DataFrame.from_dict(dict, orient='index')

account data
aa bbss
zz sssss
vv sss

"Учетная запись" - это индекс. Я хочу, чтобы DataFrame, как показано ниже, как я могу это сделать?

    account data
0 aa bbss
1 zz sssss
2 vv ss

спросил(а) 2017-09-30T18:46:00+03:00 3 года назад
1
Решение
58

Вам нужно rename_axis для изменения имени индекса и последнего reset_index:

d = {
u'erterreherh':
{
u'account': u'rgrgrgrg',
u'data': u'192.168.1.1'

},
u'hkghkghkghk':
{
u'account': u'uououopuopuop',
u'data': '192.168.1.170'
}
}

df = pd.DataFrame.from_dict(d, orient='index')
df = df.rename_axis('acount1').reset_index()
print (df)
acount1 data account
0 erterreherh 192.168.1.1 rgrgrgrg
1 hkghkghkghk 192.168.1.170 uououopuopuop

Если требуется переписать account столбца значениями из index:

df = df.assign(account=df.index).reset_index(drop=True)
print (df)
data account
0 192.168.1.1 erterreherh
1 192.168.1.170 hkghkghkghk

ответил(а) 2017-09-30T18:57:00+03:00 3 года назад
41

df.reset_index() действительно работает для меня.

df 

data
account
aa bbss
zz sssss
vv sss

df = df.reset_index()

account data
0 aa bbss
1 zz sssss
2 vv sss

ответил(а) 2017-09-30T18:53:00+03:00 3 года назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема