I have a dataframe which has 3 columns.
Code | Volume | Trade Value |
---|---|---|
Apple | 500 | 1000 |
Amazon | 1000 | 500 |
250 | 750 | |
Samsung | 100 | 1500 |
Firstly, I want to sort volume columns ascending: False that means largest to smallest. Afterwards, making new column which name is "Volume Order" and giving number as a sorting number. Secondly, I want to sort Trade Value ascending: False that means largest to smallest. Afterwards, making new column which name is "Trade Order" and giving number as a sorting number. But, when I sort Trade value, Sorted volume column order is changing according to trade volume order. Finally, I have 2 sorted columns and 2 ordered columns. Lastly, I want to sort and create a new and final column by taking the maximum of 2 separate columns sorted.(Volume Order- Trade Order).
Expected output(when volume and trade value sorting in order:
Code | Volume Order | Trade Order |
---|---|---|
Samsung | 4 | 1 |
Apple | 2 | 2 |
3 | 3 | |
Amazon | 1 | 4 |
Final output:
Code | Max Ordered Number | Final Sorted Number |
---|---|---|
Samsung | 4 | 1 |
Amazon | 4 | 2 |
3 | 3 | |
Apple | 2 | 4 |
Note: if they are the same max ordered number, the trade value will be the more important, which will be expressed by the finale of the larger one. Example; samsung 4-4. But samsung has biggest trade order. That's why it is the larger one as final sorted numbers.
When I try this code; I can't make it. Can you help this issue?
ordered = volume_df.sort_values(by=['Volume'], ascending=False,ignore_index=True)
ordered['Volume Order'] = ordered.index+1
ordered = trade_value_df.sort_values(by=['Trade Value'], ascending=False,ignore_index=True)
ordered['Trade Order'] = ordered.index+1