👩‍💻

言語処理100本ノック 2020 (Rev 2) 第2章: UNIXコマンド 18. 各行を3コラム目の数値の降順にソート

2023/01/08に公開約1,200字

問題

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()メソッドを使います。デフォルトは昇順なので、降順にしたい場合は引数ascendingFalseにします。

https://github.com/kurokawa5/nlp100_2020/blob/main/chapter02/solution18.py

参考記事

第2章: UNIXコマンド
pandas.DataFrame, Seriesをソートするsort_values, sort_index
pandas.Series.sort_values
sortコマンドについて詳しくまとめました 【Linuxコマンド集】

Discussion

ログインするとコメントできます