CSV、Excel、JSON、Pickle:Pandasで自在にデータの入出力


データの読み込み

Pandasには、様々な形式のデータをファイルから読み込むための関数があります。代表的なものは以下の通りです。

  • read_pickle: Pickle形式のデータを読み込みます。
  • read_json: JSON形式のデータを読み込みます。
  • read_excel: Excelファイルを読み込みます。
  • read_csv: CSVファイルを読み込みます。

これらの関数は、ファイルパスを引数として渡すことで、データを読み込み、DataFrame形式に変換します。

import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv('data.csv')

# Excelファイルを読み込む
df = pd.read_excel('data.xlsx')

# JSON形式のデータを読み込む
df = pd.read_json('data.json')

# Pickle形式のデータを読み込む
df = pd.read_pickle('data.pkl')

Pandasで読み込んだデータを、別の形式のファイルに書き出すこともできます。よく使用される書き込み処理は以下の通りです。

  • to_pickle: DataFrameをPickle形式のデータとして書き込みます。
  • to_json: DataFrameをJSON形式のデータとして書き込みます。
  • to_excel: DataFrameをExcelファイルに書き込みます。
  • to_csv: DataFrameをCSVファイルに書き込みます。

これらの関数には、DataFrameオブジェクトと書き込み先のファイルパスを引数として渡します。

# DataFrameをCSVファイルに書き込む
df.to_csv('data.csv')

# DataFrameをExcelファイルに書き込む
df.to_excel('data.xlsx')

# DataFrameをJSON形式のデータとして書き込む
df.to_json('data.json')

# DataFrameをPickle形式のデータとして書き込む
df.to_pickle('data.pkl')

Pandasには、上記以外にも様々な入出力処理が用意されています。例えば、以下のような処理が可能です。

  • データフレームの一部を切り取って書き出す
  • 特定の行のみを読み込む
  • 特定の列のみを読み込む

これらの処理は、オプション引数やメソッドを用いることで実行できます。詳細は、Pandasのドキュメントを参照してください。

  • データの入出力処理を行う際には、ファイルパスやデータ形式に誤りがないように注意する必要があります。
  • 入出力処理のオプションやメソッドは、Pandasのバージョンによって異なる場合があります。
  • Pandasで読み書きできるファイル形式は、上記以外にも多数あります。


CSVファイルの読み込みと書き込み

import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv('data.csv')

# データを確認する
print(df.head())

# 特定の列のみを読み込む
df_filtered = df[['name', 'age']]

# データフレームの一部を切り取って書き出す
df_filtered.to_csv('filtered_data.csv')

Excelファイルの読み込みと書き込み

import pandas as pd

# Excelファイルを読み込む
df = pd.read_excel('data.xlsx')

# データを確認する
print(df.head())

# 特定の行のみを読み込む
df_filtered = df[df['age'] > 20]

# データフレームの一部を切り取って書き出す
df_filtered.to_excel('filtered_data.xlsx')

このコードは、data.xlsxという名前のExcelファイルを読み込み、ageが20歳以上の行のみを含む新しいExcelファイルfiltered_data.xlsxを作成します。

JSON形式のデータの読み込みと書き込み

import pandas as pd
import json

# JSON形式のデータを読み込む
with open('data.json', 'r') as f:
    data = json.load(f)

df = pd.DataFrame(data)

# データを確認する
print(df.head())

# 特定の列のみを読み込む
df_filtered = df[['name', 'age']]

# データフレームをJSON形式のデータとして書き込む
with open('filtered_data.json', 'w') as f:
    json.dump(df_filtered.to_dict(), f)

このコードは、data.jsonという名前のJSONファイルを読み込み、nameageという列のみを含む新しいJSONファイルfiltered_data.jsonを作成します。

import pandas as pd

# Pickle形式のデータを読み込む
df = pd.read_pickle('data.pkl')

# データを確認する
print(df.head())

# 特定の行のみを読み込む
df_filtered = df[df['age'] > 20]

# データフレームをPickle形式のデータとして書き込む
df_filtered.to_pickle('filtered_data.pkl')


  1. どのような文脈で「Input/output」を使用していますか?
    • プログラミング? データ分析? ハードウェア? それとも別の分野?
  2. 「Input/output」のどのような側面を代替したいですか?
    • 動詞としての意味(入力/出力する)? 名詞としての意味(入力装置/出力装置)? それとも概念としての意味(データの送受信)?
  3. どのようなニュアンスや印象を与えたいですか?
    • フォーマルな表現? カジュアルな表現? 専門的な表現? それとも分かりやすい表現?

以下は、いくつかの一般的な代替表現の例です。

動詞

  • データを入力/出力する -> データを転送する、データのやり取りを行う、データを読み書きする、データを取り込む/放出する
  • 入力/出力する -> 送受信する、やり取りする、読み込む/書き出す、取り込む/放出する、注入/抽出する、フィードイン/フィードアウトする

名詞

  • データの入力/出力 -> データ転送、データのやり取り、データの読み書き、データの取り込み/放出
  • 入力装置/出力装置 -> 入出力デバイス、インターフェース、ポート、端子
  • データの送受信 -> 情報のやり取り、データフロー、データ通信、データ交換