Reputation: 896
I just want to sort Team 1 and Team 2 By comparing them both.
Team 1 Team 2 Winner Ground
0 Australia England Australia Melbourne
1 England Australia England Manchester
2 Australia England Australia Lord
3 England Australia England Birmingham
4 New Zealand Australia Australia Dunedin
5 Australia New Zealand Australia Christchurch
6 India England England Leeds
7 England India England The Oval
After comparing and Sorting it Would be like:
Team 1 Team 2 Winner Ground
0 England Australia Australia Melbourne
1 England Australia England Manchester
2 England Australia Australia Lord
3 England Australia England Birmingham
4 New Zealand Australia Australia Dunedin
5 New Zealand Australia Australia Christchurch
6 India England England Leeds
7 India England England The Oval
Upvotes: 2
Views: 504
Reputation: 862611
If need sorting values per rows in descending order only for team columns use numpy.sort
:
df[['Team 1','Team 2']] = np.sort(df[['Team 1','Team 2']], axis=1)[:, ::-1]
print (df)
Team 1 Team 2 Winner Ground
0 England Australia Australia Melbourne
1 England Australia England Manchester
2 England Australia Australia Lord
3 England Australia England Birmingham
4 New Zealand Australia Australia Dunedin
5 New Zealand Australia Australia Christchurch
6 India England England Leeds
7 India England England The Oval
Details:
First sorting in ascending order:
print (np.sort(df[['Team 1','Team 2']], axis=1))
[['Australia' 'England']
['Australia' 'England']
['Australia' 'England']
['Australia' 'England']
['Australia' 'New Zealand']
['Australia' 'New Zealand']
['England' 'India']
['England' 'India']]
And then swap 'columns' by indexing:
print (np.sort(df[['Team 1','Team 2']], axis=1)[:, ::-1])
[['England' 'Australia']
['England' 'Australia']
['England' 'Australia']
['England' 'Australia']
['New Zealand' 'Australia']
['New Zealand' 'Australia']
['India' 'England']
['India' 'England']]
Upvotes: 4