使用pandas from_dict转换为数据框时,请勿将字典中的键用作索引

时间:2018-08-29 09:53:52

标签: python-3.x pandas dataframe ordereddictionary

odict = OrderedDict([ ('dub', ['8084', 'command']),
      ('lhr',['8083','command']),
      ('ams',['8085','command']),])

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

我具有上面的OrderedDict和命令以转换为数据框。我希望字典中的键用作列中的数据,而不是用作索引。像这样打印出来。

        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 :(得分:1)

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