pandasはpythonでデータ分析をサポートするモジュールです.pandasでCSVファイルを読み込むとデータフレームに変換されます.データフレームにすることで複数のデータフレーム同士の結合や要素値の演算をすることができます.
スポンサーリンク
csvファイルについて
csvファイルは,値を[ , ]コンマで区切ったテキストファイルです.エクセルやデータのやり取りで使用される事が多いファイルです.
[sample]
Item,price,unit
AA,1000,10
BB,6000,5
CC,7000,7
csvファイルを読み込む方法
csvファイルの読み込みはpandas.read_csv()関数より行います
CSVファイルを読み込む手順
pandasをインポートします.
import pandas as pd
CSVを読み込む際は
df=pd.read_csv("csvファイル名")
csvファイルを読み込みます
下記のcsvファイルをpythonの実行ファイルと同じフォルダーに置いておきます.(これ以降のサンプルプログラムでも同じです)
[sample.csv]
Item,price,unit
AA,1000,10
BB,6000,5
CC,7000,7
csvファイルを読み込みます.
[IN]
import pandas as pd
df=pd.read_csv("sample.csv")
print(df)
[OUT]
Item price unit
0 AA 1000 10
1 BB 6000 5
2 CC 7000 7
csvファイルの列の先頭Item price unitがデータフレームのカラムラベルに変換されました.インデックスラベルは0から連番で作られているのが解ります.
ヘッダーが無い場合
ファイルの先頭行からデータが始まる場合について,そのまま読み込むとファイルの1行目がカラムラベルとして読みこまれてしまいます.引数にheader=Noneを渡すことで1行目からデータとして取り扱う事ができます.
[sample.csv]
AA,1000,10
BB,6000,5
CC,7000,7
[IN]
import pandas as pd
df=pd.read_csv("sample.csv",header=None)
print(df)
[OUT]
0 AA 1000 10
1 BB 6000 5
2 CC 7000 7
先頭行からデータとして読み込む事が出来ました.
カラム名を付けて読み込み
先程読み込んだデータフレームにはカラム名がありません.引数のnamesでカラム名を付けて読み込むことができます.先程と同じファイルで試してみます.
[sample.csv]
AA,1000,10
BB,6000,5
CC,7000,7
[IN]
import pandas as pd
colums=["Item"," price","unit"] #カラムリスト
df=pd.read_csv("sample.csv",header=None,names=colums)
print(df)
[OUT]
Item price unit
0 AA 1000 10
1 BB 6000 5
2 CC 7000 7
ヘッダーの無いファイルに後付けでカラム名をつけることができました.
インデックスラベルを付けて読み込み
デフォルトで読み込むと,インデックスラベルは0番から連番で生成されます.引数にindex_colを渡すことで指定した列をインデックラベルにできます.
[sample.csv]
Item,price,unit
AA,1000,10
BB,6000,5
CC,7000,7
[IN]
import pandas as pd
colums=["Item"," price","unit"]
df=pd.read_csv("sample.csv",index_col=[0])
print(df)
[OUT]
price unit
Item
AA 1000 10
BB 6000 5
CC 7000 7
先頭行をインデックスラベルにすることができました.
任意の行を飛ばして読み込む
先頭から任意の行を飛ばして読む場合は,引数skiprowsに値を渡すことで可能です.
[sample.csv]
1, ##
2, ##
3, ##
city,Item,price
izumo,zenzai,18140
shimonoseki,fugu,21790
okayama,kibidango,16600
先頭3行は不要のためskiprows=3として読み飛ばします.
[IN]
import pandas as pd
colums=["Item"," price","unit"]
df=pd.read_csv("sample.csv",skiprows=3)
print(df)
[OUT]
city Item price
0 izumo zenzai 18140
1 shimonoseki fugu 21790
2 okayama kibidango 16600
不要な行数を読み飛ばせたことが解ります.
数行だけ読み込む
ファイルサイズが大きい場合などで数行だけ読み込む事があります.引数nrowsに値を渡す事で数行だけ読み込むことができます.
[sample.csv]
city,Item,price
izumo,zenzai,18140
shimonoseki,fugu,21790
okayama,kibidango,16600
nagoya,ebifurai,10560
sendai,zundamochi,11410
先頭から4行を読み込むためnrows=4にして読み込みます.
[IN]
import pandas as pd
df=pd.read_csv("sample.csv",nrows=4)
print(df)
[OUT]
city Item price
0 izumo zenzai 18140
1 shimonoseki fugu 21790
2 okayama kibidango 16600
3 nagoya ebifurai 10560
先頭4行だけ読み込めました.
指定した列だけ読み込む
今までは列全体を読み込んでいましたが,引数usecolsでリスト形式で列番号か列名を指定することで,指定した列を読み込む事ができます.
[sample.csv]
A0,A1,A2,A3,A4
B0,B1,B2,B3,B4
C0,C1,C2,C3,C4
D0,D1,D2,D3,D4
列番号1と3をを指示して読み込みます.
[IN]
import pandas as pd
df=pd.read_csv("sample.csv",usecols=[1 , 3])
print(df)
[OUT]
A1 A3
0 B1 B3
1 C1 C3
2 D1 D3
行名を指示してA0とA3を読み込みます.
[IN]
import pandas as pd
df=pd.read_csv("sample.csv",usecols=["A0" , "A3"])
print(df)
[OUT]
A0 A3
0 B0 B3
1 C0 C3
2 D0 D3
CSVファイルの書き出し
データフレームを書き出すにはpandas.DataFrame.to_csv(“ファイル名”)関数より行います.
リストからデータフレームを作成してcsvファイルに書き出します.
[IN]
import pandas as pd
a_list=[[1,2],
[3,4]]
df = pd.DataFrame(a_list) #データフレームの作成
df.to_csv("test.csv") #csvファイルを書き出し
[OUT 出力されたtest.csvファイル]
,0,1
0,1,2
1,3,4
簡単にデータフレームをcsv形式で出力することができました.
スポンサーリンク
コメント