【问题标题】:How to turn a Pandas column into array and transpose it?如何将 Pandas 列转换为数组并转置?
【发布时间】:2018-03-28 23:09:01
【问题描述】:
我有一个名为“training_set”的 Pandas 数据框,类似于下面的屏幕截图:
我尝试将“标签”列转换为数组并转置它。我尝试做Y_train=np.asarray(training_set['label']),但我得到的是一个类似于下面屏幕截图的水平数组,这不是我想要的。
我希望数组像下面的屏幕截图一样垂直显示(屏幕截图每行有 2 个变量。我想要的输出每行应该只包含 1 个变量,即“标签”。)
任何建议或帮助将不胜感激!
【问题讨论】:
标签:
python
arrays
pandas
numpy
transpose
【解决方案1】:
熊猫 >= 0.24
使用DataFrame.to_numpy(),新的提取numpy数组的正确方法:
training_set[['label']].to_numpy()
熊猫
将您的列分割为单列DataFrame(使用[[...]]),而不是Series:
Y_train = np.asarray(training_set[['label']])
或者,
Y_train = training_set[['label']].values
【解决方案2】:
另一种方法是将数组重新整形为(-1,1),这意味着“推断行数,强制为 1 列”:
Y_train = np.array(training_set['label']).reshape(-1,1)
【解决方案3】:
一种方式:
Y_train = training_set['label'].values[:, None]