Pythonでファイルやデータを読み込み、PandasのDataFrameに格納する

PandasはPythonでデータの解析を容易にする機能をまとめたライブラリです

Pandasは、Series(リスト形式)とDataFrame(表形式)があります。

Pandasは、ファイルやデータベースからデータを読み込み、DataFrameに変換し、DataFrame上で新しい列を追加などのデータ加工や結合、SQLを利用して問い合わせをしたりすることができます。

今回は、ファイルやデータベースを読み込み、PandasのDataFrameに格納する方法を説明します。

ファイルやデータを読み込み、PandasのDataFrameに格納する

CSVファイルを読み込み、DataFrameに格納する

ローカル上からCSVファイルを読み込む。

サイトからCSVファイルを読み込む

読み込み時、区切り文字を指定する

区切り文字を指定する場合、sepを追加します。区切り文字のデフォルトは、カンマ(,)です。

スペース区切りは半角スペース、タブ区切りのは(\t)を設定します。

 

読み込み時、文字コードを指定する

文字コードを指定する場合、encodingを追加します。

日本語の文字コードは以下の通りです。

文字コード encoding
シフトJIS shift_jis
EUC euc_jp
UTF-8 utf-8
ISO-2022-JP iso2022_jp

CSVファイルにヘッダーがない場合

ヘッダーがない場合、「header=None」を追加します。

読み込み時、列名を設定する

ヘッダーがない場合、そのままnamesでリスト型で列名を指定します。読み込み元の列名が英語などで分かりにくい時は、わかりやすい列名を指定します。

ヘッダーがある場合、さらに「header=0」を追加します。「header=0」の追加を忘れると、namesで指定した列名がデータとして含まれてしまいますので、注意しましょう。

Excelファイルを読み込み、DataFrameに格納する

Excelファイルを読み込む

シートを指定せずにExcelファイルを読み込む場合、複数のシートが存在しても、最初のシートのみが読み込みます。

ここでは、「yubin.xlsx」ファイルを読み込んだ場合です。

読み込み時、ヘッダーがない場合

ヘッダーがない場合、”header=None”を追加します。

読み込み時、列名を設定する

Excelファイルを読み込み時、namesでリスト型で列名を指定します。読み込み元の列名が英語などで分かりにくい時に、わかりやすい列名を指定するといいでしょう。

ヘッダーがない場合、さらに「header=None」を追加します。

読み込み時、読み込む列を指定する

usecolsを利用してヘッダーの列名をリスト型で指定してExcelファイルを読み込む場合、指定した列名が読み込まれます。ヘッダーがない場合は、数値を指定します。

読み込み時、読み込むシートを指定する

シートを指定してExcelファイルを読み込む場合、指定したシートが読み込まれます。

ここでは、シート名を「02AOMORI」に指定し、Excelファイルを読み込んだ場合です。

読み込み時、読み込むシートを複数指定する

シートを指定してExcelファイルを読み込む場合、指定したシートが読み込まれます。

ここでは、シート名を「01HOKKAI」と「02AOMORI」にを指定し、Excelファイルを読み込んだ場合です。

dataは、シート名をキーとしてデータが格納されます。

読み込み時、すべてのシートを読み込む

すべてのシートを読み込む場合、「sheet_name=None」を追加します。

dataは、シート名をキーとしてデータが格納されます。

Accessを読み込み、DataFrameに格納する

Accessからデータを読み込むには、pyodbcというPython用SQLのモジュールを利用します。

pyodbcを利用するには、pyodbcをpipコマンドでインストールします。

ここでは、Power Shellプロンプトを開いて「pip install pyodbc」コマンドでインストールしています。
pyodbcをインストール下画面

Accessに接続するためには、DRIVERでAccessドライバー、DBQでAccessファイルを設定し、pyodbc.connectを利用して接続します。

接続後は、取得したいデータをSQL文で作成し、pd.read_sqlを利用してデータを取得します。

データ取得が成功したら、conn.closeでAccessを切断します。

SQLite3を読み込み、DataFrameに格納する

SQLite3データベースからデータを読み込むには、sqlite3というモジュールをインポートします。

SQLite3に接続するためには、SQLite3ファイルを設定し、sqlite3.connectを利用して接続します。

接続後は、取得したいデータをSQL文で作成し、pd.read_sql_queryを利用してデータを取得します。

データ取得が成功したら、conn.closeでSQLite3を切断します。

JSONファイルを読み込み、DataFrameに格納する

JSONファイルを読み込むには、Pandasのread_json関数を利用します

ローカル上からJSONファイルを読み込む。

ここでは、「20200519.json」を読み込んだ場合です。

サイトからCSVファイルを読み込む

ここでは、サイトから「https://opendata.corona.go.jp/api/covid19DailySurvey/20200519」のJSONデータをみ込んだ場合です。