Не используйте ключи в словаре в качестве индекса при преобразовании в фрейм данных с использованием панд from_dict - PullRequest
0 голосов
/ 29 августа 2018
odict = OrderedDict([ ('dub', ['8084', 'command']),
      ('lhr',['8083','command']),
      ('ams',['8085','command']),])

df = pandas.DataFrame.from_dict(odict, orient='index')
print(df)

У меня есть вышеупомянутый OrderedDict и команда для преобразования в dataframe. Я хотел бы, чтобы ключи в dict использовались как данные в столбце, а не как индекс. Это распечатывается так, как показано ниже.

        0        1
dub  8084  command
lhr  8083  command
ams  8085  command

Однако я бы хотел, чтобы он печатался так, используя то, что, я думаю, называется RangeIndex.

    0     1        2
0 dub  8084  command
1 lhr  8083  command
2 ams  8085  command

1 Ответ

0 голосов
/ 29 августа 2018

Используйте DataFrame.reset_index для RangeIndex, а затем создайте имена столбцов по умолчанию с помощью np.arange:

df = pd.DataFrame.from_dict(odict, orient='index').reset_index()
df.columns = np.arange(len(df.columns))
print(df)
     0     1        2
0  dub  8084  command
1  lhr  8083  command
2  ams  8085  command

Другое решение с пониманием списка:

df = pd.DataFrame([(k, *v) for k, v in odict.items()])
print(df)
     0     1        2
0  dub  8084  command
1  lhr  8083  command
2  ams  8085  command
...