Pythonのpandasとawkで同じ処理を実装してみました。
両方ともその時のサンプルコードを載せています。
※MACターミナル(BSD系)での動作確認です。

スポンサーリンク

特定の列のみprint出力

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

awkで実装

例えば、下記のようにin.txtがあったとします。

 $ cat in.txt 
801,0
802,1
193,2
194,3
305,4

下記のようにawkだとワンライナーで書けますね。

 $ cat in.txt | awk -F"," '{print $1}'
 

下記が実行結果になります。
 $ cat in.txt | awk -F"," '{print $1}'
801
802
193
194
305

スポンサーリンク

Pythonのpandasで実装

下記がサンプルコードになります。

read_csv()で読み込んで、iterrows()でループ処理させて1列目をprint出力しています。

awkと比べると多少コード量は多くなります。

これぐらいだとawkでも事足りるかもしれません。

もう少し複雑なことをしようとするとPythonの本領発揮となるでしょうか。

 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import pandas as pd

df1 = pd.read_csv('in.txt',	 names=('col1', 'col2'))

for index, row in df1.iterrows():
	print(row.col1)

下記が実行結果になります。
 $ ./sample.py 
801
802
193
194
305

スポンサーリンク

特定の列の合計値を求める

awkで実装

こちらもワンライナーで書けます。

 $ cat in.txt | awk -F"," '{sum += $2} END{print sum}'
 

下記が実行結果になります。
 $ cat in.txt | awk -F"," '{sum += $2} END{print sum}'
10

Pythonのpandasで実装

2列目の合計値を算出します。
下記がサンプルコードになります。

 $ cat sample2.py 
#!/usr/bin/env python3
# coding: UTF-8

import pandas as pd

df1 = pd.read_csv('in.txt',	 names=('col1', 'col2'))

print(df1.col2.sum())

下記が実行結果になります。
 $ ./sample2.py 
10

スポンサーリンク