【Python】pandasでcsvファイルの読み込み(pandas.read_csv)

pandasでcsvファイルを読み込み、DataFrameにセット

 

papi
papi

pandasでcsvファイルを読み込み、DataFrameにセットする方法を紹介します。

 

タイトル行のあるcsvファイルの読み込み

【csvデータ:character.csv】

キャラクターID,名称,タイプ,属性,形態
1978,アシュリー,妖精,水,契約
2355,シャンゼリゼ,妖精,水,進化
2495,アーク,ドラゴン,光,契約

タイトル行のあるcsvファイル(character.csv)。

 

【コード&実行結果】

import pandas as pd
df = pd.read_csv('character.csv', encoding='shift-jis')
print(df)
print(df.shape)
print(df.columns)
print(df.index)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

(3, 5)

Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

RangeIndex(start=0, stop=3, step=1)

 

【説明】

import pandas as pd

pandasを別名pdで利用出来るようにインポート。

 

df = pd.read_csv('character.csv', encoding='shift-jis')

csvデータに日本語が含まれるためパラメーターで「encoding=’shift-jis’」を指定して、csvファイルをDataFrameに読み込み。

 

print(df)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

DataFrameに読み込んcsvデータがセットされている。

 

print(df.shape)

<実行結果>
(3, 5)

3行5列のDataFrameが作成されている。

 

print(df.columns)

<実行結果>
Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

DataFrameの列名(カラム名)には、1行目がセットされている。

 

print(df.index)

<実行結果>
RangeIndex(start=0, stop=3, step=1)

DataFrameのインデックスには、0から始まる連番の行名(インデックス)がセットされている。

 

タイトル行のあるcsvファイルの読み込み(先頭から指定行分スキップ)

【csvデータ:character.csv】

幻獣契約キャラクター一覧
キャラクターID,名称,タイプ,属性,形態
1978,アシュリー,妖精,水,契約
2355,シャンゼリゼ,妖精,水,進化
2495,アーク,ドラゴン,光,契約

タイトル行のあるcsvファイル(character.csv)。

 

【コード&実行結果】

import pandas as pd

df = pd.read_csv('character.csv', encoding='shift-jis',skiprows=1)
print(df)
print(df.shape)
print(df.columns)
print(df.index)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

(3, 5)

Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

RangeIndex(start=0, stop=3, step=1)

 

【説明】

import pandas as pd

pandasを別名pdで利用出来るようにインポート。

 

df = pd.read_csv('character.csv', encoding='shift-jis',skiprows=1)

csvデータに日本語が含まれるためパラメーターで「encoding=’shift-jis’」、csvデータの先頭1行目は取り込みが不要なデータのため「skiprows=1」を指定して、1行目をスキップして2行目からcsvファイルをDataFrameに読み込み。

 

print(df)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

DataFrameに読み込んcsvデータがセットされている。

 

print(df.shape)

<実行結果>
(3, 5)

3行5列のDataFrameが作成されている。

 

print(df.columns)

<実行結果>
Index(['キャラクターID', '名称', 'タイプ', '属性', '形態'], dtype='object')

DataFrameの列名(カラム名)には、2行目がセットされている。

 

print(df.index)

<実行結果>
RangeIndex(start=0, stop=3, step=1)

DataFrameのインデックスには、0から始まる連番の行名(インデックス)がセットされている。

 

 

タイトル行のないcsvファイルの読み込み

【csvデータ:character.csv】

1978,アシュリー,妖精,水,契約
2355,シャンゼリゼ,妖精,水,進化
2495,アーク,ドラゴン,光,契約

タイトル行のないcsvファイル(character.csv)。

 

【コード&実行結果】

import pandas as pd

df = pd.read_csv('character.csv', encoding='shift-jis', header=None)
print(df)
print(df.shape)
print(df.columns)
print(df.index)

df1 = pd.read_csv('character.csv', encoding='shift-jis', header=None, \
                  names=('キャラクターID', '名称', 'タイプ', '属性', '形態'))
print(df1)

<実行結果>
 0 1 2 3 4
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

(3, 5)

Int64Index([0, 1, 2, 3, 4], dtype='int64')

RangeIndex(start=0, stop=3, step=1)

 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

 

【説明】

import pandas as pd

pandasを別名pdで利用出来るようにインポート。

 

df = pd.read_csv('character.csv', encoding='shift-jis', header=None)

csvデータに日本語が含まれるためパラメーターで「encoding=’shift-jis’」、csvデータにタイトル行がないためパラメーターで「header=None」を指定して、csvファイルをDataFrameに読み込み。

 

print(df)

<実行結果>
 0 1 2 3 4
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

DataFrameに読み込んcsvデータがセットされている。

 

print(df.shape)

<実行結果>
(3, 5)

3行5列のDataFrameが作成されている。

 

print(df.columns)

<実行結果>
Int64Index([0, 1, 2, 3, 4], dtype='int64')

DataFrameの列名(カラム名)には、0から始まる連番がセットされている。

 

print(df.index)

<実行結果>
RangeIndex(start=0, stop=3, step=1)

DataFrameのインデックスには、0から始まる連番の行名(インデックス)がセットされている。

 

df1 = pd.read_csv('character.csv', encoding='shift-jis', header=None, \
                  names=('キャラクターID', '名称', 'タイプ', '属性', '形態'))
print(df1)

<実行結果>
 キャラクターID 名称 タイプ 属性 形態
0 1978 アシュリー 妖精 水 契約
1 2355 シャンゼリゼ 妖精 水 進化
2 2495 アーク ドラゴン 光 契約

csvファイル読み込み時にnamesパラメーターを指定して、DataFrameの列名をセットすることも出来る。

 

コメント