Home > Mobile >  How to stack and rename N successive columns in df
How to stack and rename N successive columns in df

Time:01-02

How would I achieve the desired output as shown below? Ie, stack the first 3 columns underneath each other, stack the second 3 columns underneath each other and rename the columns.

d = {'A': [76, 34], 'B': [21, 48], 'C': [45, 89], 'D': [56, 41], 'E': [3, 2],
     'F': [78, 32]}
df = pd.DataFrame(data=d)
df.columns=['A', 'A', 'A', 'A', 'A', 'A']

Output

df
    A   A   A   A  A   A
0  76  21  45  56  3  78
1  34  48  89  41  2  32

Desired Output

   Z1  Z2
0  76  56
1  34  41
2  21  3
3  48  2
4  45  78
5  89  32

CodePudding user response:

Go down into numpy, reshape and create a new dataframe:

pd.DataFrame(df.to_numpy().reshape((-1, 2), order='F'), columns = ['Z1','Z2'])
Out[19]: 
   Z1  Z2
0  76  56
1  34  41
2  21   3
3  48   2
4  45  78
5  89  32
  • Related