python - 为什么 "X for X in DataFrame"只给出列名

标签 python pandas

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/

相关文章:

python - Pandas系列-如何以嵌套方式使用函数?

python - 如何使用 python 将波斯语文本保存在 csv 文件中?

python - 如何从对象为 datetime.time 类型的 Pandas DataFrame.Index 中添加/减去时间(小时、分钟等)?

python - 通过文本框交互式 matplotlib 图

python - 缺少 com.apple.xbs 文件夹,如何获取它?

python - 如何使用 Pandas 从 csv 文件中读取 2E2、2E4、3E2、3E4 作为字符串?

python - 如何使用 pandas 更改数据框中文本的字体大小

python - 在 Pandas 中转置几列(不是整个数据框)(与 get_dummies 相反)

python - 如何使用初始 GaussianMixtureModel 训练 GMM?

python - 忽略与正则表达式不完全匹配的字符串?