Is it possible to move each row to end of same row after removing NaN of each row

Question:

I’ve been looking for the way to remove NaN in each row of dfA(DataFrame) and after then, move every row under push1_start_date and reconnect with the end of push1_start_date. Is it possible to do that ?? I tried stack() and unstack() method but it doesn’t work .Thank you.

            push1_start_date  push2_start_date  push3_start_date  push4_start_date  push5_start_date  push6_start_date  push7_start_date  push8_start_date
2021-04-29                 3               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-04-30                20               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-01                24               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-02                21               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-03                14               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-04                 5               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-05                14               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-06                16               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-07                17               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-08                14               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-11                78               NaN               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-12                20              78.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-13                13              21.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-14                 8              12.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-15                18               8.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-16                16              19.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-17                16              16.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-18                18              15.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-19                14              19.0               NaN               NaN               1.0               2.0               NaN               NaN
2021-05-20                13              14.0               1.0               NaN               1.0               1.0               NaN               NaN
2021-05-21                11              13.0               NaN               NaN               1.0               NaN               1.0               NaN
2021-05-22                26              10.0               NaN               2.0               NaN               1.0               NaN               NaN
2021-05-23                12              27.0               NaN               1.0               NaN               NaN               NaN               NaN
2021-05-24                15              12.0               1.0               3.0               NaN               1.0               NaN               NaN
2021-05-25                 9              16.0               NaN               1.0               NaN               1.0               NaN               NaN
2021-05-26                14               9.0               NaN               1.0               NaN               NaN               NaN               NaN
2021-05-27                14              12.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-28                21              16.0               NaN               NaN               NaN               NaN               NaN               NaN
2021-05-29                23              20.0               1.0               2.0               1.0               1.0               NaN               NaN
2021-05-30                18              23.0               1.0               NaN               1.0               1.0               NaN               NaN
2021-05-31                19              17.0               NaN               3.0               1.0               3.0               NaN               NaN
2021-06-01                15              21.0               NaN               3.0               1.0               1.0               NaN               NaN
2021-06-02                22              13.0               1.0               2.0               NaN               1.0               NaN               NaN
2021-06-03                19              23.0               1.0               NaN               NaN               1.0               NaN               NaN
2021-06-04                12              20.0               2.0               NaN               2.0               NaN               NaN               NaN
2021-06-05                 2               1.0               NaN               NaN               NaN               1.0               NaN               NaN
ideal output

push1_start_date 
2021-04-29 3 ←The begging of push1_start_date
2021-06-05 2 ←The last of push1_start_date
2021-05-12 78 ←The begging of push2_start_date
2021-06-05 1.0 ←The last of push2_start_date
2021-05-20 1.0 ←The begging of push2_start_date
2021-06-04 2.0 ←The last of push2_start_date
it comtines untill push8_start_date
Asked By: okkotsu

||

Answers:

You can try with reset_index(), melt(),dropna() and drop():

out=(df.reset_index()
     .melt('index',value_name='push_start_date')
     .dropna(subset=['push_start_date'])
     .drop('variable',1))

OR

via concat() and to_frame():

out=(pd.concat([df[x].dropna() for x in df.columns[df.dtypes!='object']])
     .to_frame('push_start_date'))
Answered By: Anurag Dabas

You could use df.melt() to stack all the columns on the right into 1 column, then keep only the value column without null values:

df.melt().drop('variable', axis=1).dropna()

Output

           value 
2021-04-29 3
...        ...
2021-06-05 2
2021-05-12 78
...        ...
2021-06-05 1.0
2021-05-20 1.0
...        ...
2021-06-04 2.0
...        ...
Answered By: perpetualstudent