我有一个pandas数据帧,例如
one two three four five
0 1 2 3 4 5
1 1 1 1 1 1
我想要的是能够只将选定数量的列转换为列表,以便我们获得:
[[1,2],[1,1]]
这是行0,1,我们选择第一列和第二列。
同样,如果我们选择第1,2,4列:
[[1,2,4],[1,1,1]]
理想情况下,我希望避免迭代行,因为它很慢!
答案 0 :(得分:5)
您可以选择以下列:
In [11]: df[['one', 'two']]
Out[11]:
one two
0 1 2
1 1 1
使用tolist从基础numpy数组中获取列表列表:
In [12]: df[['one', 'two']].values.tolist()
Out[12]: [[1, 2], [1, 1]]
In [13]: df[['one', 'two', 'four']].values.tolist()
Out[13]: [[1, 2, 4], [1, 1, 1]]
注意:除非这是你的最终游戏,否则永远不需要这样做......在pandas或numpy中进行 work 会更有效率。
答案 1 :(得分:2)
所以我找到了如何做到这一点。
首先,我们选择我们想要的值的列:
y = x[['one','two']]
这为我们提供了一个子集df。
现在我们可以选择值:
> y.values
array([[1, 2],
[1, 1]])