Pandasで複数条件('勝点', '得失点差', '得点')で順位付けしたいのですがどうすればいいのでしょうか
1つの条件だけなら
python
1df['rank'] = df['勝点'].rank(ascending=False, method='dense')
並び替えだけだともし全部が同じ場合は順位が違ってしまいます。
python
1df.sort_values(['勝点', '得失点差', '得点'], ascending=[False, False, False], inplace=True) 2df.reset_index(inplace=True) 3df.index = df.index + 1
どのようにすればいいのでしょうか
python
1import pandas as pd 2 3url = 'http://www.jfl.or.jp/jfl-pc/view/s.php?a=1277' 4 5dfs = pd.read_html(url, skiprows=2) 6 7df = dfs[0] 8 9# タイトル行追加 10df.columns = ['順位', 'チーム名', '勝点', '試合数', '勝利', '勝利H', '勝利A', '引分', '引分H', '引分A', '敗戦', '敗戦H', '敗戦A', '得失点差', '得点', '失点'] 11 12# タイトル列追加 13df = df.set_index('順位') 14 15df['rank'] = df1.loc[:,['勝点', '得失点差', '得点']].rank(ascending=False, method='dense') 16# df['rank'] = df['勝点'].rank(ascending=False, method='dense') 17 18df.sort_values('rank')
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/27 14:32
2018/05/27 14:39
2018/05/27 14:41
2018/05/27 14:54
2018/05/27 14:58
2018/05/27 14:59
2018/05/27 15:00
2018/05/27 15:09