このチャプターの目次
9. 集計と重複処理
集計
df.sort_values(by='molecular_weight').head(3)
df.sort_values(by='molecular_weight',ascending=False).head(3)
【補足説明】集計などは、google colabolatoryだとコードを書かなくてもできる
左下のボタンをクリックする
操作可能なテーブルになったあとに、列名のところをクリックすると昇順や降順で並び替えができる。
重複処理
# ユニークな要素の個数を整数int型で返す
df.nunique()
この例だと、idが492行あるのにたいして、smilesが489行なので重複があることがわかる。
# smilesで重複している様子を確認
df[df["smiles"].duplicated(keep=False)]
重複を表示させると、
- idの35とidの55はnameが異なっているが、smilesやmolecular_weightは同じ
- idが456と466はnameの部分に、4が先頭についているかどうかだけが異なっている。
- idが605と626はnameの部分が、sesaminとepisesaminと個なっている。
手動で削除
#手動で、行番号で削除
df = df.drop(df.index[[310]])
df[df["smiles"].duplicated(keep=False)]
indexが300、idと表示されている番号が456、nameが"4-p-Coumaroylquinic acid"の行を削除してみる。ここでは、indexで削除するものをしてdfを上書きした。そして、表示させてみると重複がなくなっているのがわかる。
自動で削除
# "smiles"が重複しているものを削除してdfを上書き
df = df.drop_duplicates(subset='smiles')
df.nunique()
出てきた最初のものだけを残したいならば、以下のコードで自動で削除もできる。