0

I have a dataframe with 5 columns: M1, M2, M3, M4 and M5. Each column contains floating-point values. Now I want to combine the data of 5 columns into one.

I tried

cols = list(df.columns)
df_new['Total'] = []
df_new['Total'] = [df_new['Total'].append(df[i], ignore_index=True) for i in cols]

But I'm getting this

enter image description here

I'm using Python 3.8.5 and Pandas 1.1.2.

Here's a part of my df

M1      M2      M3      M4      M5
0       5       12      20      26
0.5     5.5     12.5    20.5    26.5
1       6       13      21      27
1.5     6.5     13.5    21.5    27.5
2       7       14      22      28
2.5     7.5     14.5    22.5    28.5
10      15      22      30      36
10.5    15.5    22.5    30.5    36.5
11      16      23      31      37
11.5    16.5    23.5    31.5    37.5
12      17      24      32      38
12.5    17.5    24.5    32.5    38.5

And this is what I'm expecting

0
0.5
1
1.5
2
2.5
10
10.5
11
11.5
12
12.5
5
5.5
6
6.5
7
7.5
15
15.5
16
16.5
17
17.5
12
12.5
13
13.5
14
14.5
22
22.5
23
23.5
24
24.5
20
20.5
21
21.5
22
22.5
30
30.5
31
31.5
32
32.5
26
26.5
27
27.5
28
28.5
36
36.5
37
37.5
38
38.5
1
  • Can you df.head(5).to_dict() and post that so we can work with a part of your dataset? Also can you include your expected output? Commented Apr 3, 2021 at 7:33

1 Answer 1

2
import pandas as pd

Just make use of concat() method and list comprehension:

result=pd.concat((df[x] for x in df.columns),ignore_index=True)

Now If you print result then you will get your desired output

Performance(concat() vs unstack()):

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.