'How to bring data frame into single column from multiple columns in python

I have data format in these multiple columns. So I want to bring all 4 columns of data into a single column.

YEAR Month pcp1 pcp2 pcp3 pcp4              
1984    1   0   0   0   0
1984    2   1.2 0   0   0
1984    3   0   0   0   0
1984    4   0   0   0   0
1984    5   0   0   0   0
1984    6   0   0   0   1.6
1984    7   3   3   9.2 3.2
1984    8   6.2 27.1    5.4 0
1984    9   0   0   0   0
1984    10  0   0   0   0
1984    11  0   0   0   0
1984    12  0   0   0   0


Solution 1:[1]

pd.wide_to_long

pd.wide_to_long(df, i=['YEAR', 'Month'], j='day', stubnames='pcp', suffix='\d+', sep='').reset_index()

    YEAR  Month  day   pcp
0   1984      1    1   0.0
1   1984      1    2   0.0
2   1984      1    3   0.0
3   1984      1    4   0.0
4   1984      2    1   1.2
5   1984      2    2   0.0
6   1984      2    3   0.0
7   1984      2    4   0.0
8   1984      3    1   0.0
9   1984      3    2   0.0
10  1984      3    3   0.0
11  1984      3    4   0.0
12  1984      4    1   0.0
13  1984      4    2   0.0
14  1984      4    3   0.0
15  1984      4    4   0.0
16  1984      5    1   0.0
17  1984      5    2   0.0
18  1984      5    3   0.0
19  1984      5    4   0.0
20  1984      6    1   0.0
21  1984      6    2   0.0
22  1984      6    3   0.0
23  1984      6    4   1.6
24  1984      7    1   3.0
25  1984      7    2   3.0
26  1984      7    3   9.2
27  1984      7    4   3.2
28  1984      8    1   6.2
29  1984      8    2  27.1
30  1984      8    3   5.4
31  1984      8    4   0.0
32  1984      9    1   0.0
33  1984      9    2   0.0
34  1984      9    3   0.0
35  1984      9    4   0.0
36  1984     10    1   0.0
37  1984     10    2   0.0
38  1984     10    3   0.0
39  1984     10    4   0.0
40  1984     11    1   0.0
41  1984     11    2   0.0
42  1984     11    3   0.0
43  1984     11    4   0.0
44  1984     12    1   0.0
45  1984     12    2   0.0
46  1984     12    3   0.0
47  1984     12    4   0.0

Solution 2:[2]

df.melt(id_vars=["YEAR", "Month"], var_name='Date', value_name="pcp").sort_values(['Month','Date']).reset_index(drop=True)
YEAR    Month   Date    pcp
0   1984    1   pcp1    0.0
1   1984    1   pcp2    0.0
2   1984    1   pcp3    0.0
3   1984    1   pcp4    0.0
4   1984    2   pcp1    1.2
5   1984    2   pcp2    0.0
6   1984    2   pcp3    0.0
7   1984    2   pcp4    0.0
8   1984    3   pcp1    0.0
9   1984    3   pcp2    0.0
10  1984    3   pcp3    0.0
11  1984    3   pcp4    0.0
12  1984    4   pcp1    0.0
13  1984    4   pcp2    0.0
14  1984    4   pcp3    0.0
15  1984    4   pcp4    0.0
16  1984    5   pcp1    0.0
17  1984    5   pcp2    0.0
18  1984    5   pcp3    0.0
19  1984    5   pcp4    0.0
20  1984    6   pcp1    0.0
21  1984    6   pcp2    0.0
22  1984    6   pcp3    0.0
23  1984    6   pcp4    1.6
24  1984    7   pcp1    3.0
25  1984    7   pcp2    3.0
26  1984    7   pcp3    9.2
27  1984    7   pcp4    3.2
28  1984    8   pcp1    6.2
29  1984    8   pcp2    27.1
30  1984    8   pcp3    5.4
31  1984    8   pcp4    0.0
32  1984    9   pcp1    0.0
33  1984    9   pcp2    0.0
34  1984    9   pcp3    0.0
35  1984    9   pcp4    0.0
36  1984    10  pcp1    0.0
37  1984    10  pcp2    0.0
38  1984    10  pcp3    0.0
39  1984    10  pcp4    0.0
40  1984    11  pcp1    0.0
41  1984    11  pcp2    0.0
42  1984    11  pcp3    0.0
43  1984    11  pcp4    0.0
44  1984    12  pcp1    0.0
45  1984    12  pcp2    0.0
46  1984    12  pcp3    0.0
47  1984    12  pcp4    0.0

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Shubham Sharma
Solution 2 Mayur Dhage