Reputation: 17
Header A | Header B | Header B | Header B | Header B | Header C |
---|---|---|---|---|---|
Ship Mode | First Class | Second Class | Third Class | Premium | |
Order ID | |||||
order 1 | 20.00 | 30.00 | 40.00 | 50.00 | sum |
order 2 | 40.00 | 30.00 | 40.00 | 50.00 | sum |
I need to merge the header B to 4 column but the data I have is:
Header A | Header B | Unnamed:1 | Unnamed:2 | Unnamed3 | Header C |
---|---|---|---|---|---|
Ship Mode | First Class | Second Class | Third Class | Premium | - |
Order ID | |||||
order 1 | 20.00 | 30.00 | 40.00 | 50.00 | sum |
order 2 | 40.00 | 30.00 | 40.00 | 50.00 | sum |
I tried np.Concatenation
, but I'm not getting the same format!
Upvotes: 0
Views: 52
Reputation: 11650
here is one way to do it
# turn the column heading into a series, brings column-names in a columnar form
# replace columns starting with Unnam to np.nan
# ffill the previous row value
# reassign to the datafram
# df2 refers to your starting dataframe
df2.columns=pd.Series(df2.columns).replace(r'Unnam*',np.nan, regex=True).ffill()
df2
Header A Header B Header B Header B Header B Header C
0 Ship Mode First Class Second Class Third Class Premium -
1 Order ID NaN NaN NaN NaN NaN
2 order 1 20.00 30.00 40.00 50.00 sum
3 order 2 40.00 30.00 40.00 50.00 sum
Upvotes: 1