pandas pythonでデータをグループわけして記述統計を調べて外部ファイルでソートして出力するワンライナー
- 並び順の指定なし
入力
python -c "import pandas as pd;df2=pd.read_csv('a3.txt',names=['st','fee']);print df2.groupby('st').describe().unstack()['fee'];"
出力
count mean std min 25% 50% 75% max
st
イヌ 7 46.428571 19.940387 2 51.5 52 53 62
キツネ 7 26.571429 11.516034 12 17.0 32 33 42
タヌキ 7 6.142857 4.845223 1 3.5 4 9 13
ネコ 7 229.285714 37.200870 145 242.0 242 244 246
- 並び指定あり
python -c "import pandas as pd;df=pd.read_csv('a1.txt',names=['id','st'],index_col='st');df2=pd.read_csv('a2.txt',names=['st','fee']);df2b=df2.groupby('st').describe().unstack()['fee'];df2c=df.join(df2b);print df2c;df2c.to_csv('out.csv');"
入力1
並び順指定ファイル
$ cat a1.txt
1,タヌキ
2,キツネ
3,ネコ
4,イヌ
入力2:
データファイル
$ cat a3.txt
イヌ,52
キツネ,32
ネコ,245
タヌキ,3
イヌ,52
キツネ,33
ネコ,242
タヌキ,1
イヌ,53
キツネ,12
ネコ,145
タヌキ,13
イヌ,51
キツネ,22
ネコ,242
タヌキ,13
イヌ,2
キツネ,33
ネコ,246
タヌキ,4
イヌ,53
キツネ,42
ネコ,242
タヌキ,4
イヌ,62
キツネ,12
ネコ,243
タヌキ,5
出力
id count mean std min 25% 50% 75% max
st
タヌキ 1 7 6.142857 4.845223 1 3.5 4 9 13
キツネ 2 7 26.571429 11.516034 12 17.0 32 33 42
ネコ 3 7 229.285714 37.200870 145 242.0 242 244 246
イヌ 4 7 46.428571 19.940387 2 51.5 52 53 62