Pandas のテキストファイルからデータをロードする方法
-
テキストファイルからデータを読み込む
read_csv()メソッド -
read_fwf()メソッドを使用してwidth formatedテキストファイルを PandasDataFrameに読み込む -
テキストファイルを Pandas の
DataFrameに読み込むのread_table()メソッド
Pandas DataFrame で txt ファイルからデータを読み込む方法を紹介します。利用可能なオプションについても説明します。
まず、sample.txt というシンプルなテキストファイルを作成し、次の行をファイルに追加します。
45 apple orange banana mango
12 orange kiwi onion tomato
Python スクリプトを実行するのと同じディレクトリに保存する必要があります。
テキストファイルからデータを読み込む read_csv() メソッド
read_csv() は、text ファイルを Pandas DataFrame に変換するための最良の方法です。上記で作成したファイルには header がないため、header=None を設定する必要があります。空の値を NaN に置き換える場合は、メソッド内に keep_default_na=False を設定することもできます。
コード例:
# python 3.x
import pandas as pd
df = pd.read_csv("sample.txt", sep=" ", header=None)
print(df)
出力:
0 1 2 3 4
0 45 apple orange banana mango
1 12 orange kiwi onion tomato
値は単一の空白で区切られているため、sep=" " を設定します。同様に、カンマ区切りファイルからデータを読み取る場合は、sep=","を設定できます。sample.txt 内の空白を , に置き換え、次に sep=" "を sep=","に置き換えてからコードを実行します。
Sample.txt
45,apple,orange,banana,mango
12,orange,kiwi,,tomato
コード:
# python 3.x
import pandas as pd
df = pd.read_csv("sample.txt", sep=",", header=None)
print(df)
出力:
0 1 2 3 4
0 45 apple orange banana mango
1 12 orange kiwi NaN tomato
read_fwf() メソッドを使用して width formated テキストファイルを Pandas DataFrame に読み込む
read_fwf() は、幅でフォーマットされたテキストファイルがある場合に非常に役立ちます。値が異なると区切り文字が異なる場合があるため、sep は使用できません。次のテキストファイルを考えてみます。
Sample.txt
45 apple orange banana mango
12 orange kiwi onion tomato
Sample.text では、delimiter はすべての値で同じではありません。したがって、read_fwf() はここで機能をします。
コード:
# python 3.x
import pandas as pd
df = pd.read_fwf("sample.txt", header=None)
print(df)
出力:
0 1 2 3 4
0 45 apple orange banana mango
1 12 orange kiwi onion tomato
テキストファイルを Pandas の DataFrame に読み込むの read_table() メソッド
read_table() は、text ファイルから Pandas の DataFrame にデータを load するもう 1つの方法です。
Sample.txt:
45 apple orange banana mango
12 orange kiwi onion tomato
コード:
# python 3.x
import pandas as pd
df = pd.read_table("sample.txt", header=None, sep=" ")
print(df)
出力:
0 1 2 3 4
0 45 apple orange banana mango
1 12 orange kiwi onion tomato