如何从pandas数据框中提取列,将其附加到行,同时保持其他列不变。
这是我的示例数据集。
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
分割数据帧和concat,但它给出了NaN值。我的原始数据集很大。
最佳答案
可以使用stack
:将索引设置为不想修改的列,调用堆栈,按“sample”列排序,然后重置索引:
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
关于python - 如何从数据框中提取列并将其附加到行,同时保持其他列不变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52939749/