我有一个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
但列表索引已重置。
我正在寻找答案,我将非常感谢您花时间和精力帮助我。
答案 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}