y = [x for x in train]
这里,train
是mnist数据集的数据框。
我知道这段代码是转换列表中的所有内容,但它只提供数据帧的列名称(pixel1、pixel2...)。
为什么它没有以列表的形式向我提供全部数据?
最佳答案
这就是它应该如何工作的。例如,如果您以相同的方式遍历字典,您只会获得键,而不会获得值。在 DataFrame 中,列名就像字典的键。
字典示例:
>>> 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
关于python - 为什么 "X for X in DataFrame"只给出列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58535387/