2021年1月4日月曜日

言語処理100本ノック 問題12

 問. popular-names.txtは,アメリカで生まれた赤ちゃんの「名前」「性別」「人数」「年」をタブ区切り形式で格納したファイルである.以下の処理を行うプログラムを作成し,popular-names.txtを入力ファイルとして実行せよ.さらに,同様の処理をUNIXコマンドでも実行し,プログラムの実行結果を確認せよ

各行の1列目だけを抜き出したものをcol1.txtに,2列目だけを抜き出したものをcol2.txtとしてファイルに保存せよ.確認にはcutコマンドを用いよ.

 

解答例

import pandas as pd
df = pd.read_table('./popular-names.txt', header=None, sep='\t', names=['name', 'sex', 'number', 'year']) 

#col1の定義 dfの中からnameを取り出して、col1と定義

col1 = df['name']

#pandasのto_csv関数を使う
col1.to_csv('./col1.txt', index=False)

#col1の冒頭5行を書き出す
print(col1.head())

 

 出力

0         Mary
1         Anna
2         Emma
3    Elizabeth
4       Minnie
5     Margaret
6          Ida
7        Alice
8       Bertha
9        Sarah
Name: name, dtype: object 

 

確認:ubuntuで実行

cut -f 1 ./popular-names.txt > ./col1_chk.txt

cat ./col1_chk.txt | head -n 5

出力

Mary
Anna
Emma
Elizabeth
Minnie

 

参考リンク

【言語処理100本ノック 2020】第2章: UNIXコマンド

0 件のコメント:

コメントを投稿