- 1. 概要
- 2. .csv 読込
- 3. 最大行数指定
1. 概要
「pytorch」を扱っているときに、「.csv」を読み取るところで出現したので、「.csv」のパーサかと思えば、さにあらず。
「pandas - Wikipedia」によれば、「pandasは、プログラミング言語 Python において、データ解析を支援する機能を提供するライブラリである。」とのことです。
「CSV」、テキストファイル、「Excel」、「SQL データベース」等を扱えるそうで、「.csv」を読み込むメソッドも用意されているわけです。
名前で、中国の変な動物を想像したのですが、「Pan(el)-da(ta)-s」だそうです。
本ページは、下記のサイトを参考にさせていただきました。
「pandas documentation」
「pandas CSV/TSV ファイル読み込み(read_csv, read_table)」
「【pandas】csv ファイルを読み込む方法」
「Python ライブラリに変な名前のものが多い理由」
悲しいことに、公式のページは、英語のみで、日本語の解説はあるものの、なかなかわたしがほしい資料はないのです。
2. .csv 読込
「data_01.csv」という「.csv」ファイルがあって。
中身は。
4,1,781,1748,True,0,0,0,0,False,0,0,0,0,False
1,1,804,1754,True,0,0,0,0,True,4,1,1790,1183,True
1,1,795,1755,True,0,0,0,0,False,0,0,0,0,False
0,1,786,1756,True,0,0,0,0,False,0,0,0,0,False
0,1,786,1756,True,1,1,2514,1004,True,1,1,1788,1186,True
となっています。
中身の意味については、聞いてくださるな。
これを、もっとも単純な形式で読み込むと。
import pandas
df = pandas.read_csv('data_01.csv')
print(df)
こんな感じで出力されます。
4 1 781 1748 True 0 0.1 0.2 0.3 False 0.4 0.5 0.6 0.7 False.1
0 1 1 804 1754 True 0 0 0 0 True 4 1 1790 1183 True
1 1 1 795 1755 True 0 0 0 0 False 0 0 0 0 False
2 0 1 786 1756 True 0 0 0 0 False 0 0 0 0 False
3 0 1 786 1756 True 1 1 2514 1004 True 1 1 1788 1186 True
てな感じで、出力されます。
1行目は、ヘッダとして解釈するですな。
ヘッダなしとするには、「header=None」というオプションを使用します。
df = pandas.read_csv('data_01.csv', header=None)
と書き換えて、実行すると、下記の出力になります。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 4 1 781 1748 True 0 0 0 0 False 0 0 0 0 False
1 1 1 804 1754 True 0 0 0 0 True 4 1 1790 1183 True
2 1 1 795 1755 True 0 0 0 0 False 0 0 0 0 False
3 0 1 786 1756 True 0 0 0 0 False 0 0 0 0 False
4 0 1 786 1756 True 1 1 2514 1004 True 1 1 1788 1186 True
実は、これ、5つずつのデータセットとなっていて・・・。
5つつめずつにある、「True」「False」のデータは実はいらないのだ。
「0~3、5~8、10~13」のみ使いたい。
この場合。
df = pandas.read_csv('data_01.csv', header=None, , usecols=[0,1,2,3,5,6,7,8,10,11,12,13])
と書き換えて、実行すると、下記の出力になります。
0 1 2 3 5 6 7 8 10 11 12 13
0 4 1 781 1748 0 0 0 0 0 0 0 0
1 1 1 804 1754 0 0 0 0 4 1 1790 1183
2 1 1 795 1755 0 0 0 0 0 0 0 0
3 0 1 786 1756 0 0 0 0 0 0 0 0
4 0 1 786 1756 1 1 2514 1004 1 1 1788 1186
3. 最大行数指定
読込時の最大行数を「nrows=n」で、指定することができます。
前項の行を。
df = pandas.read_csv('data_01.csv', header=None, usecols=[0,1,2,3,5,6,7,8,10,11,12,13], nrows=2)
と書き換えて、実行すると、下記の出力になります。
0 1 2 3 5 6 7 8 10 11 12 13
0 4 1 781 1748 0 0 0 0 0 0 0 0
1 1 1 804 1754 0 0 0 0 4 1 1790 1183
|