为什么“ DataFrame中的X for X”仅给出列名

时间:2019-10-24 06:30:17

标签: python pandas

y = [x for x in train]

train是mnist数据集的数据框。

我知道这段代码是要转换列表中的所有内容,但它只是给我数据帧的列名(pixel1,pixel2 ...)。

为什么没有将我的全部数据作为列表提供?

1 个答案:

答案 0 :(得分:2)

那应该是这样工作的。例如,如果您以相同的方式遍历字典,则只会得到键,而不会得到值。在DataFrames中,列名就像字典的键。

带有字典的示例:

>>> d = {'a':[1,2,3,4], 'b':[3,4,5,6], 'c':[7,8,9,0]}
>>> l = [x for x in d]
>>> l
['a', 'b', 'c']
>>> [d[x] for x in d]
[[1, 2, 3, 4], [3, 4, 5, 6], [7, 8, 9, 0]]

您需要这个:

y = [train[x].tolist() for x in train]

顺便说一下,您可以通过以下方式将整个数据作为数组获取:

y = train.values