【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として読み込ませるのが手っ取り早いんじゃないかな…!
この記事が気に入ったらサポートをしてみませんか?