如何合并熊猫数据框中的两列,堆叠在顶部

问题描述 投票:0回答:1

我有一个像这样的数据框:

df1
  x_data  y_data
    b        a
    d        c
    f        e
    h        g
    j        i
    l        k

我需要像这样创建一个新的数据框:

data  identifier
b       x
d       x
f       x
h       x
j       x
l       x
a       y
c       y
e       y 
g       y
i       y
k       y

可以用熊猫吗?就像将一列堆叠在另一列之上,但保留该列是什么类型的信息的记录。非常感谢。

python pandas dataframe
1个回答
0
投票
df.columns = df.columns.str.split('_', expand=True) df = (df.unstack() .reset_index(level=[1,2], drop=True) .rename_axis('identifier') .reset_index(name='data')[['data','identifier']]) print (df) data identifier 0 b x 1 d x 2 f x 3 h x 4 j x 5 l x 6 a y 7 c y 8 e y 9 g y 10 i y 11 k y

或:

df.columns = df.columns.str.split('_').str[0]
df = (df.unstack()
       .reset_index(level=1, drop=True)
       .rename_axis('identifier')
       .reset_index(name='data')[['data','identifier']])
© www.soinside.com 2019 - 2024. All rights reserved.