首页 > 解决方案 > pandas - 从字典列表创建数据框时,如何将行添加为列?

问题描述

我有一个按特定顺序排列的字典列表,我可以将它们转换为数据框,但我想将 rowId 作为标识符。

这是我的代码和我卡住的地方:

priceHistory
[{'Apple': 1.27, 'Oranges': 2.92, 'Pears': 2.05},
 {'Apple': 1.12, 'Oranges': 3.33, 'Pears': 1.72},
 {'Apple': 1.22, 'Oranges': 4.52, 'Pears': 2.31},
 {'Apple': 1.37, 'Oranges': 5.93, 'Pears': 2.81},
 {'Apple': 1.5, 'Oranges': 5.77, 'Pears': 3.66},
 {'Apple': 1.59, 'Oranges': 5.24, 'Pears': 3.35},
 {'Apple': 1.29, 'Oranges': 4.97, 'Pears': 4.02},
 {'Apple': 1.53, 'Oranges': 6.03, 'Pears': 5.22},
 {'Apple': 1.86, 'Oranges': 8.4, 'Pears': 7.04},
 {'Apple': 1.61, 'Oranges': 10.33, 'Pears': 5.98}]
priceHistorydf = pd.DataFrame(priceHistory)
priceHistorydf
Apple   Pears   Oranges
0   1.27    2.05    2.92
1   1.12    1.72    3.33
2   1.22    2.31    4.52
3   1.37    2.81    5.93
4   1.50    3.66    5.77
5   1.59    3.35    5.24
6   1.29    4.02    4.97
7   1.53    5.22    6.03
8   1.86    7.04    8.40
9   1.61    5.98    10.33

如您所见,顺序是正确的,并且有行号。但我需要将这些标识符放在单独的列中。我怎样才能做到这一点?

标签: pythonpandas

解决方案


检查reset_index,则索引变为一列,可以视为 id

priceHistorydf = priceHistorydf.reset_index()

或者

priceHistorydf ['ID'] = np.arange(len(priceHistorydf ))
priceHistorydf 
Out[13]: 
   Apple  Pears  Oranges  ID
0   1.27   2.05     2.92   0
1   1.12   1.72     3.33   1
2   1.22   2.31     4.52   2
3   1.37   2.81     5.93   3
4   1.50   3.66     5.77   4
5   1.59   3.35     5.24   5
6   1.29   4.02     4.97   6
7   1.53   5.22     6.03   7
8   1.86   7.04     8.40   8
9   1.61   5.98    10.33   9

推荐阅读