如何从(m,)获取形式(m,n)的尺寸

时间:2019-02-26 12:04:13

标签: python

我已完成以下操作:
 y = df['C'],其中df是一个数据帧。   y.shape返回(m,),但我希望它采用(m,1)的形式,即(m,n)的形式。

我该怎么做?
我正在使用numpy库。我尝试过:y = df.C.values。但结果是一样的。

3 个答案:

答案 0 :(得分:1)

当您访问DataFrame的列时,您正在获取一维#rows大小的矢量。如果您希望每个元素都具有第二维1,那么您需要[1, 2, 3, 4]而不是[[1], [2], [3], [4]],请将其转换为具有.values属性的NumPy ndarray,然后将其调整为大小{ {1}}。

(-1, 1)

使用df = pd.DataFrame([1,2,3,4], columns=['C']) col_c_1 = df['C'].values # Shape (4,) col_c_2 = col_c_1.reshape(-1, 1) # Shape (4, 1) 是要自动填充第一个尺寸。

答案 1 :(得分:1)

您只需要重塑。

import numpy as np
import pandas as pd
df=pd.DataFrame([[1,2],[1,2],[1,2]], columns=['A','B'])
print(df['B'].shape)
new_B=df.B.values.reshape((len(df),1))
print(new_B.shape)

您会得到:

(3,)
(3, 1)

答案 2 :(得分:0)

由于(m,1)和(m,)相同,因此结果很明显,因为一列向量可以用一个维度表示为要获取的输出。

>>> import numpy as np
>>> a=[1,2,3,4,5]
>>> s=np.array(a)
>>> s
array([1, 2, 3, 4, 5])
>>> s.shape
(5,)