Python 提取Numpy列的一部分

Python 提取Numpy列的一部分,python,pandas,numpy,Python,Pandas,Numpy,我有一个numpy数组,看起来像这样: >> print(x) +-----+-----+-----+ | 0 | 1 | 2 | |-----+-----+-----| | 1 | 1 | 2 | | 1 | 1 | 2 | | 1 | 2 | 1 | | 1 | 5 | 4 | | 1 | 7 | 4 | | 1 | 7 | 4 | | 1 | 7 | 4 | | 1 | 12

我有一个numpy数组,看起来像这样:

>> print(x)

+-----+-----+-----+
|   0 |   1 |   2 |
|-----+-----+-----|
|   1 |   1 |   2 |
|   1 |   1 |   2 |
|   1 |   2 |   1 |
|   1 |   5 |   4 |
|   1 |   7 |   4 |
|   1 |   7 |   4 |
|   1 |   7 |   4 |
|   1 |  12 |   1 |
我想提取列1分组中第2列的部分。之后,分组列将被转换为其自己的行,并转换为下表:

>> print(x_transformed)

+-----+-----+-----+-----+-----+
|   0 |   1 |   2 |   3 |   4 |
|-----+-----+-----+-----+-----|
|   1 |   1 | 2   |  2  |  0  |
|   1 |   2 | 1   |  0  |  0  |
|   1 |   5 | 4   |  0  |  0  |
|   1 |   7 | 4   |  4  |  4  |
|   1 |  12 | 1   |  0  |  0  |
将在没有值的位置插入0

  • 例如,如果您查看第1列中的表1,其中有7个。第2列中的相应值为4,4,4。因此,在x_变换中,水平值为4,4,4

有没有一个标准的方法来做这件事?我应该看看熊猫吗?

你的问题加上了“熊猫”的标签,所以这里有一个熊猫解决方案:

In [7]: df.pivot_table(index=['0','1'], columns=df.groupby(['0','1']).cumcount()+2, values='2', fill_value=0).reset_index()
Out[7]:
   0   1  2  3  4
0  1   1  2  2  0
1  1   2  1  0  0
2  1   5  4  0  0
3  1   7  4  4  4
4  1  12  1  0  0
假设您有以下列:

In [8]: df.columns
Out[8]: Index(['0', '1', '2'], dtype='object')

您将问题标记为“熊猫”,因此这里有一个熊猫解决方案:

In [7]: df.pivot_table(index=['0','1'], columns=df.groupby(['0','1']).cumcount()+2, values='2', fill_value=0).reset_index()
Out[7]:
   0   1  2  3  4
0  1   1  2  2  0
1  1   2  1  0  0
2  1   5  4  0  0
3  1   7  4  4  4
4  1  12  1  0  0
假设您有以下列:

In [8]: df.columns
Out[8]: Index(['0', '1', '2'], dtype='object')

您需要回答更多带有NumPy标记的问题!;)顺便说一句,新年快乐!谢谢@Divakar,我会努力的,但我还是要学很多东西!;)祝你新年快乐!!!您需要回答更多带有NumPy标记的问题!;)顺便说一句,新年快乐!谢谢@Divakar,我会努力的,但我还是要学很多东西!;)祝你新年快乐!!!