【python+pandas】csvを読み込んで、どの要素がいくつあるか集計する

数万行あるcsvをpandasに読み込んで解析を行えるようにします。
今回は、「どの要素がいくつあるか」を集計してみます。

くだもの,りんご
やさい,キャベツ
たまご
くだもの,なし
くだもの,りんご
やさい,ほうれんそう
牛乳

みたいなCSVから、

くだもの 3
  くだもの,りんご 2
  くだもの,なし 1
やさい 2
  やさい,キャベツ 1
  やさい,ほうれんそう 1
たまご 1
牛乳 1

のように集計したいと思います。できたらいいなー

準備

$ pip install pandas

で、pandasをインストール

csvを読み込ませる

import pandas

dataframe = pandas.read_csv("ファイルの絶対パス")

これで読み込むと、CSVの一行目が自動的にヘッダーと解釈されて、列名(columns)として割り当てられるので、ヘッダーがないCSVを読み込むときは

import pandas

dataframe = pandas.read_csv("ファイルの絶対パス", header = None)

と、headerにNoneを指定する。

これだけで、pandas.Dataframeとしてcsvを読み込むことができる。簡単。

どの要素がいくつあるかを集計する

result = dataframe.value_counts()

これだけで、重複する要素がいくつあるか集計してくれるので、あとは適当に出力するだけ。

ただ、

aaa,bbb,ccc
111,222,333
111,222
aaa,
aaa,bbb,ccc

みたいなCSVを食わせても、

0    1    2
aaa  bbb  ccc    2
111  222  333    1

という結果になり、カラム数が揃っていない行は無視されるので、そういうデータの場合先にカンマを適当な区切り文字に置換して、1カラムのCSVとして読み込ませるのが手っ取り早いんじゃないかな…!

この記事が気に入ったらサポートをしてみませんか?