並び替え
home_scoreが多い順に並び変えてみる
df.sort_values("home_score", ascending = False).head(11)
date | home_team | away_team | home_score | away_score | tournament | city | country | neutral | |
---|---|---|---|---|---|---|---|---|---|
23569 | 2001-04-11 | Australia | American Samoa | 31 | 0 | FIFA World Cup qualification | Coffs Harbour | Australia | False |
10860 | 1979-08-30 | Fiji | Kiribati | 24 | 0 | South Pacific Games | Nausori | Fiji | False |
23566 | 2001-04-09 | Australia | Tonga | 22 | 0 | FIFA World Cup qualification | Coffs Harbour | Australia | False |
# home_scoreが多い順に並び変えて、同じ値の場合はアルファベット順に並べる
df.sort_values(["home_score", "home_team"], ascending = [False, True]).head(3)
リストにする
- 降順に並べてある
- ascending = False が降順(数値が大きい・Z→A)
- ascending = True か 指定なしで昇順(数値が小さい・A→Z)
- 複数列を使うことも可能
- 左から順に適応されるため左が優先
- 二つ目のソートは”home_score”を降順でソートした後、同じ値の時は”home_team”の昇順でソートしている
- 下の二行が入れ替わってることが確認できる
ランダムサンプリング
# 実行例1:何度も実行してランダムにサンプリングできることを確認しよう
df.sample()
一行のみサンプリング
# 実行例2:3個ずつランダムにサンプリングできることを確認しよう
df.sample(n=3)
3行サンプリング
date | home_team | away_team | home_score | away_score | tournament | city | country | neutral | |
---|---|---|---|---|---|---|---|---|---|
37014 | 2015-12-26 | Bangladesh | Maldives | 1 | 3 | SAFF Cup | Thiruvananthapuram | India | True |
8060 | 1972-05-07 | Ethiopia | Greece | 0 | 1 | Friendly | Addis Abeba | Ethiopia | False |
17552 | 1993-05-11 | Lebanon | Korea Republic | 0 | 1 | FIFA World Cup qualification | Beirut | Lebanon | False |
実行例3:列がランダムにサンプリングできることを確認しよう
df.sample(axis=1)
date | |
---|---|
0 | 1872-11-30 |
1 | 1873-03-08 |
2 | 1874-03-07 |
3 | 1875-03-06 |
4 | 1876-03-04 |
… | … |
39003 | 2018-06-04 |
39004 | 2018-06-04 |
39005 | 2018-06-04 |
39006 | 2018-06-04 |
39007 | 2018-06-04 |
39008 rows × 1 columns
concat関数による結合
# 結合
pd.concat([df2, df3], sort=False)
解説
- 変数
df2
と変数df3
を結合している - 結合するデータの中で同名の列がない場合は、新たな列が作成される
- 列名に一致するデータがない場合は自動的にNaNが割り振られる
まとめ
- データの結合方法:
pd.concat([結合するデータA, 結合するデータB])
- 行名を連番にしたい場合は
ignore_index=True
を書こう → これがないと元のindexの番号が入ってしまい、例えば3が重複してしまう。 - 縦方向ならaxis=0, 横方向ならaxis=1
注意
- 列名に注意して結合しよう!!
- concat()内に
sort=False
を忘れると列の順が変わってしまうので注意 - concat()内に
sort=False
を忘れると警告文が出ることがある
コメント