I have a this Dataframe
a | b | c | d | e | f | g | h | |
---|---|---|---|---|---|---|---|---|
o | 1 | 1 | nan | nan | nan | nan | nan | nan |
o | nan | nan | 2 | 2 | nan | nan | nan | nan |
o | nan | nan | nan | nan | 3 | 3 | nan | nan |
o | nan | nan | nan | nan | nan | nan | 4 | 4 |
I want to conversion this DataFrame
a | b | c | d | e | f | g | h | |
---|---|---|---|---|---|---|---|---|
o | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 |
How to make code use pandas..? I try numpy diagonal but it is failed
CodePudding user response:
Use:
df = df.replace('nan', np.nan).groupby(level=0).first()
CodePudding user response:
Another possible solution:
a = df.values.flatten()
pd.DataFrame(a[~np.isnan(a)].reshape(-1,df.shape[1]), columns=df.columns)
Output:
a b c d e f g h
0 1.0 1.0 2.0 2.0 3.0 3.0 4.0 4.0