首页 > 解决方案 > 如何从数据框中提取列并将其附加到行,同时保持其他列不变

问题描述

如何从熊猫数据框中提取一列将其附加到行,同时保持其他列相同。

这是我的示例数据集。

import pandas as pd
import numpy as np
df = pd.DataFrame({'ID':  np.arange(0,5),
                  'sample_1' : [5,6,7,8,9],
                  'sample_2' : [10,11,12,13,14],
                  'group_id' : ["A","B","C","D","E"]})

我正在寻找的输出是:

df2 = pd.DataFrame({'ID':  [0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
                  'sample_1' : [5,6,7,8,9,10,11,12,13,14],
                  'group_id' : ["A","B","C","D","E","A","B","C","D","E"]})

我试图使用切片数据框和连接,pd.concat但它给出了 NaN 值。

我的原始数据集很大。

标签: pythonpandas

解决方案


您可以使用以下方法执行此操作stack:将索引设置为您不想修改的列,调用堆栈,按“示例”列排序,然后重置您的索引:

df.set_index(['ID','group_id']).stack().sort_values(0).reset_index([0,1]).reset_index(drop=True)

   ID group_id   0
0   0        A   5
1   1        B   6
2   2        C   7
3   3        D   8
4   4        E   9
5   0        A  10
6   1        B  11
7   2        C  12
8   3        D  13
9   4        E  14

推荐阅读