将pandas数据帧深度复制到列表中(包括索引)

时间:2018-05-20 06:14:04

标签: python list pandas indexing

我有一个pandas dataframe df

    column1
2     1
3     2
8     3
10    4
45    5

我想把这个pandas dataframe的第1列转换成列表x,我也希望索引也是列表的索引

所以如果我打电话给x [2]

它应该返回1

我试过

x = df['column1'].values

但列表索引已重置。

我正在寻找答案,我将非常感谢您花时间和精力帮助我。

1 个答案:

答案 0 :(得分:1)

Python列表具有连续索引,它不能在索引范围内有漏洞。

实现目标的唯一方法是为每个洞填充原始系列nan,形成一个连续的索引:

In [29]: df.column1.reindex(np.arange(df.index.max()+1)).tolist()
Out[29]: 
[nan,
 nan,
 1.0,
 2.0,
 nan,
 nan,
 nan,
 nan,
 3.0,
 nan,
 4.0,
 nan,
 nan,
 nan,
 nan,
 nan,
 ....

如果您可以使用dict,则以下方法更可取:

In [35]: df.column1.to_dict()
Out[35]: {2: 1, 3: 2, 8: 3, 10: 4, 45: 5}