👩💻
言語処理100本ノック 2020 (Rev 2) 第2章: UNIXコマンド 18. 各行を3コラム目の数値の降順にソート
問題
18. 各行を3コラム目の数値の降順にソート
各行を3コラム目の数値の逆順で整列せよ(注意: 各行の内容は変更せずに並び替えよ).確認にはsortコマンドを用いよ(この問題はコマンドで実行した時の結果と合わなくてもよい).
solution18.py
import pandas as pd
df = pd.read_csv('chapter02/popular-names.txt', sep='\t', header=None)
print(df.sort_values(2 ,ascending=False))
output
0 1 2 3
1340 Linda F 99689 1947
1360 Linda F 96211 1948
1350 James M 94757 1947
1550 Michael M 92704 1957
1351 Robert M 91640 1947
solution18.sh
sort -r -k3 -t $'\t' popular-names.txt | head -n5
solution17.txt
Linda F 99689 1947
James M 9951 1911
Mildred F 9921 1913
Mary F 9889 1886
Mary F 9888 1887
この問題では、pandas.DataFrame
, pandas.Series
をソート(並び替え)するには、sort_values()
メソッドを使います。デフォルトは昇順なので、降順にしたい場合は引数ascending
をFalse
にします。
参考記事
第2章: UNIXコマンド
pandas.DataFrame, Seriesをソートするsort_values, sort_index
pandas.Series.sort_values
sortコマンドについて詳しくまとめました 【Linuxコマンド集】
Discussion