pandasでcsvファイルを読み込み、DataFrameにセット
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の列名をセットすることも出来る。
コメント