将数据帧行转换为矩阵 - Python Pandas

时间:2017-08-16 16:16:50

标签: python pandas numpy

我有以下数据框:

   Pclass   Sex     Fare    Embarked    Title   Family
    3          0    1.0        0          0     1
    1          1    2.0        1          3     1
    3          1    1.0        1          2     0
    1          1    2.0        3          3     1
    3          0    2.0        1          1     0

我需要将每一行转换为6X32矩阵。

(3X10的例子)

3,3,3,3,3,3,3,3,3,3
0,0,0,0,0,0,0,0,0,0
1,1,1,1,1,1,1,1,1,1

我需要这个但是对于列的每个元素而言是32次而不是10次。

我的代码:

from itertools import repeat
array = []
for i in range(0,len(datos)):
    rows = datos.iloc[i,:]
    for j in range(0,len(rows)):
        array.append([rows[j]]*10)

我不知道如何将每一行分成一个独特的数组。

1 个答案:

答案 0 :(得分:2)

一切都是

np.dstack([df.values.astype(int)] * 32)

您甚至可以将其转换为具有匹配索引的系列

pd.Series(np.dstack([df.values.astype(int)] * 32).tolist(), df.index).apply(np.array)

0    [[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,...
1    [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
2    [[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,...
3    [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
4    [[3, 3, 3, 3, 3,