Panda merge all columns start with a prefix "result"

Question:

I have a dynamic dataframe generation which create column or columns like below x,y,z, can be anything

df

   result  result_x  result_y  result_z  result_.....        
    0       1          1             0              
    0       1          0             1              

some times it will generate

   result  result_x          
    0       1                      
    0       1          

Some time it will generate

   result  result_x  result_y         
    0       1           1           
    0       1           2

some time it can generate

   result  result_x  result_y result_z result_a result_b......any number of result         
    0       1           1           
    0       1           2

I want a simple dataframe which will merge all columns start prefix with result

it would be output of first df:

result
0110.. #merge all columns value
0101...

Note:

I have other columns as well in df

like

username,address,xapi_data,...,result,result_x,result_y,...
Asked By: Rajarshi Das

||

Answers:

You can use .str.startswith:

result_cols = df.columns.str.startswith('result')

(df.loc[:, result_cols]               # extract result columns
   .astype(str).agg(''.join, axis=1)  # join them
   .to_frame('result').join(df.loc[:, ~result_cols]) # join the other columns
)
Answered By: Quang Hoang
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.