Traffine I/O

日本語

2022-11-13

Pandasを使ったデータのインポートとエクスポート

はじめに

Pandasを使えば、さまざまな形式のデータを簡単にインポートやエクスポートし、前処理や変換を行うことができます。この記事では、Pandasを使って様々なデータをインポート・エクスポートする方法を紹介します。

データファイルの読み込み

この章では、Pandasを使って様々なファイル形式からデータをインポートする方法を紹介します。

CSVファイルのインポート

CSV(カンマ区切り値)ファイルは、表形式のデータを保存・共有するために広く使われています。CSVファイルをインポートするには、Pandasのread_csv()関数を使います。

python
import pandas as pd

data = pd.read_csv('file.csv')

区切り文字、エンコーディング、ヘッダ情報などの追加引数を指定することもできます。

python
data = pd.read_csv('file.tsv', delimiter='\t', encoding='utf-8', header=0)

Excelファイルのインポート

Excelファイルからデータをインポートするには、read_excel()関数を使います。まず、openpyxlパッケージをインストールする必要があります。

bash
$ pip install openpyxl

その後、次のようにExcelファイルをインポートします。

python
data = pd.read_excel('file.xlsx', sheet_name='Sheet1')

JSONファイルのインポート

JSON(JavaScript Object Notation)は、人間が読み書きしやすく、機械が解析しやすい軽量データ交換形式です。JSONデータをインポートするには、read_json()関数を使います。

python
data = pd.read_json('file.json')

URLや文字列からJSONデータをインポートすることもできます。

SQLデータのインポート

PandasはSQLite、MySQL、PostgreSQLなど、様々なSQLデータベースとやり取りできます。SQLデータベースからデータをインポートするには、適切なPythonライブラリを使ってデータベースに接続します。その後、read_sql()関数を使って特定のテーブルやクエリからデータをインポートします。

python
import sqlite3
import pandas as pd

connection = sqlite3.connect('database.db')

data = pd.read_sql('SELECT * FROM table_name', connection)

処理が終わったら、接続を閉じることを忘れずに行ってください。

python
connection.close()

Web APIからのデータのインポート

Web APIを使えば、様々なオンラインソースからデータを取得できます。Web APIからデータをインポートするには、requestsライブラリを使ってデータを取得し、それをPandasのDataFrameに変換します。

python
import requests
import pandas as pd

response = requests.get('https://api.example.com/data')
data = response.json()

df = pd.DataFrame(data)

その他のフォーマットからのデータのインポート

Pandasは、HTMLテーブル、Parquetファイル、HDF5ファイルなど、他のフォーマットからのデータのインポートにも関数を提供しています。例えば、HTMLテーブルからデータをインポートするには、read_html()関数を使います。

python
data = pd.read_html('https://example.com/table.html')

詳細は、Pandasドキュメントを参照してください。

データファイルの書き出し

この章では、Pandas DataFrameをCSV、Excel、JSON、SQLデータベースなど、様々なファイル形式にエクスポートする方法を紹介します。

CSVファイルへのエクスポート

DataFrameをCSVファイルにエクスポートするには、to_csv()メソッドを使います。

python
import pandas as pd

# Create a sample DataFrame
data = {'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']}
df = pd.DataFrame(data)

# Export DataFrame to a CSV file
df.to_csv('output.csv', index=False)

区切り文字、エンコーディング、インデックスの有無など、追加引数を指定することもできます。

python
df.to_csv('output.tsv', sep='\t', encoding='utf-8', index=False)

Excelファイルへのエクスポート

DataFrameをExcelファイルにエクスポートするには、to_excel()メソッドを使います。まず、openpyxlパッケージをインストールする必要があります。

bash
$ pip install openpyxl

その後、次のようにDataFrameをExcelファイルにエクスポートします。

python
df.to_excel('output.xlsx', sheet_name='Sheet1', index=False)

JSONファイルへのエクスポート

DataFrameをJSONファイルにエクスポートするには、to_json()メソッドを使います。

python
df.to_json('output.json', orient='records')

orientパラメータを使ってJSONの向きを指定することができます。利用可能なオプションは次のとおりです。

  • records: DataFrameをJSONオブジェクトの配列としてエクスポートします。各オブジェクトはDataFrameの行を表します。
  • index: DataFrameをJSONオブジェクトとしてエクスポートします。キーはインデックスラベルであり、値は対応する行データが配列として表されます。
  • columns: DataFrameをJSONオブジェクトとしてエクスポートします。キーは列名であり、値は対応する列データが配列として表されます。
  • values:DataFrameをネストされた配列としてエクスポートします。各内部配列はDataFrameの行を表します。

orient='records'

python
# Create a sample DataFrame
data = {'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']}
df = pd.DataFrame(data)

# Export DataFrame as an array of JSON objects (records)
df.to_json('output_records.json', orient='records')
[
  { "Column1": 1, "Column2": "A" },
  { "Column1": 2, "Column2": "B" },
  { "Column1": 3, "Column2": "C" }
]

orient='index'

python
# Export DataFrame as a JSON object with index labels as keys (index)
df.to_json('output_index.json', orient='index')
{
  "0": { "Column1": 1, "Column2": "A" },
  "1": { "Column1": 2, "Column2": "B" },
  "2": { "Column1": 3, "Column2": "C" }
}

orient='columns'

python
# Export DataFrame as a JSON object with column names as keys (columns)
df.to_json('output_columns.json', orient='columns')
{
  "Column1": { "0": 1, "1": 2, "2": 3 },
  "Column2": { "0": "A", "1": "B", "2": "C" }
}

orient='values'

python
# Export DataFrame as a nested array (values)
df.to_json('output_values.json', orient='values')
[
  [1, "A"],
  [2, "B"],
  [3, "C"]
]

SQLデータベースへのエクスポート

DataFrameをSQLデータベースにエクスポートするには、適切なPythonライブラリを使ってデータベースへの接続を確立する必要があります。その後、to_sql()メソッドを使用して、新しいテーブルを作成するか、既存のテーブルにデータを追加します。

python
import sqlite3
import pandas as pd

# Create a sample DataFrame

data = {'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']}
df = pd.DataFrame(data)

# Connect to the database

connection = sqlite3.connect('database.db')

# Export DataFrame to a new SQL table

df.to_sql('new_table', connection, if_exists='replace', index=False)

# Close the connection

connection.close()

その他のフォーマットへのエクスポート

pandasは、HTMLテーブル、Parquetファイル、HDF5ファイルなどの他のフォーマットにデータをエクスポートするためのメソッドも提供しています。例えば、データをHTMLテーブルにエクスポートするには、to_html()メソッドを使用します。

python
df.to_html('output.html', index=False)

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!