Pandas:将列值附加为新行

时间:2017-04-13 16:33:02

标签: pandas

我有一个如下所示的数据框:

In [32]: df
Out[32]: 
   200003  200003.1
0     123       456

我想像这样改造它:

       200003
    0     123
    1     456

实现这一目标的最简单方法是什么?

修改 df.stack()返回

0  200003      123
   200003.1    456
dtype: int64

我的目标是使用df.to_dict('records')将df转换为适合机器学习的格式,如[{'200003': '123'}, {'200003': '456'}]

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找DataFrame.stack()

回答你的编辑:

stacked = df.stack()
stacked.index = [df.columns[0]] * stacked.shape[0]

然后:

out = [ {j[0]:j[1]} for j in list(zip(stacked.index, stacked.values)) ]

为您提供您要查找的词典列表。