Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで外部データをインポートする方法|CSV・Excel・データベースの読み込み手順

Pythonでプログラムを実行し、データ分析を行う際には、外部のデータセットを読み込む必要があります。Pythonには、CSVやExcelなどさまざまなファイル形式のデータをプログラムに取り込むためのモジュールが多数用意されています。この記事では、代表的な形式ごとにデータをインポートする方法を具体例とともに解説します。

csvモジュールを使ってCSVファイルを読み込む

標準ライブラリのcsvモジュールを使うと、カンマを区切り文字としてファイル内の各行を1つずつ読み取ることができます。まずファイルを読み取り専用モードで開き、区切り文字(delimiter)を指定します。その後、forループでCSVファイルから1行ずつデータを取得して表示します。

コード例

import csv

with open("E:\\customers.csv", "r") as custfile:
    rows = csv.reader(custfile, delimiter=',')
    for r in rows:
        print(r)

実行結果

上記のコードを実行すると、次のような結果が出力されます。

['customerID', 'gender', 'Contract', 'PaperlessBilling', 'Churn']
['7590-VHVEG', 'Female', 'Month-to-month', 'Yes', 'No']
['5575-GNVDE', 'Male', 'One year', 'No', 'No']
['3668-QPYBK', 'Male', 'Month-to-month', 'Yes', 'Yes']
['7795-CFOCW', 'Male', 'One year', 'No', 'No']
……
……

各行はリストとして返されるため、必要に応じて特定の列だけを抽出したり、条件分岐で処理したりすることも簡単に行えます。

pandasを使ってExcelファイルを読み込む

pandasライブラリは、CSVをはじめとするほとんどのファイル形式を扱うことができます。Excelファイルの場合はread_excel関連の機能を使用します。以下の例では、先ほどのCSVファイルと同じ内容を持つExcelファイル(customers.xlsx)を読み込み、head()メソッドで先頭10行を表示しています。

コード例

import pandas as pd

df = pd.ExcelFile("E:\\customers.xlsx")
data = df.parse("customers")
print(data.head(10))

実行結果

上記のコードを実行すると、次のような結果が出力されます。

   customerID  gender         Contract PaperlessBilling Churn
0  7590-VHVEG  Female  Month-to-month              Yes    No
1  5575-GNVDE    Male        One year               No    No
2  3668-QPYBK    Male  Month-to-month              Yes   Yes
3  7795-CFOCW    Male        One year               No    No
4  9237-HQITU  Female  Month-to-month              Yes   Yes
5  9305-CDSKC  Female  Month-to-month              Yes   Yes
6  1452-KIOVK    Male  Month-to-month              Yes    No
7  6713-OKOMC  Female  Month-to-month               No    No
8  7892-POOKP  Female  Month-to-month              Yes   Yes
9  6388-TABGU    Male        One year               No    No

このようにpandasでは、Excelファイルの内容が表形式のDataFrameとして読み込まれるため、そのまま集計や前処理などの分析作業に進むことができます。なお、CSVファイルを読み込む場合はpd.read_csv()を利用するのが一般的です。

pyodbcを使ってデータベースからデータを取得する

pyodbcというモジュールを使えば、SQL Serverなどのデータベースサーバーに直接接続することも可能です。これにより、SQLクエリを実行してリレーショナルデータベースからデータをインポートできます。クエリを実行する前に、接続先のドライバーやサーバー名、認証情報などの接続詳細を定義しておく必要があります。

コード例

import pyodbc
import pandas as pd

sql_conn = pyodbc.connect(
    "Driver={SQL Server};Server=serverName;UID=UserName;PWD=Password;Database=sqldb;"
)
data_sql = pd.read_sql_query('SELECT * FROM customers', sql_conn)
print(data_sql.head())

実行結果

実行結果は、実行したSQLクエリの内容によって異なります。上記の例では、customersテーブルの先頭5行がDataFrame形式で表示されます。

まとめ

Pythonでは、用途に応じて複数の方法で外部データをインポートできます。軽量なCSV処理には標準ライブラリのcsvモジュール、分析を前提とした読み込みにはpandas、データベースとの連携にはpyodbcが適しています。それぞれの特徴を理解して使い分けることで、データ分析の前段階であるデータ取得を効率化できます。

  1. Pythonで顧客離反(チャーン)を予測する方法:機械学習による実践ガイド

    あらゆるビジネスは顧客のロイヤルティに依存しています。リピート購入は企業の収益性を支える重要な柱の一つであり、顧客が離れていく理由を把握することは極めて重要です。このように顧客が離反していく現象は「カスタマーチャーン(Customer Churn)」と呼ばれます。過去の傾向を分析することで、どのような要因が顧客離反に影響を与えているのかを把握し、特定の顧客が離反するかどうかを予測できるようになります。本記事では、機械学習アルゴリズムを使って過去の顧客離反データの傾向を分析し、どの顧客が離反する可能性が高いかを判定する方法を解説します。データの準備例として、通信業界(Telecom)の顧客離反デ

  2. Pythonで国勢調査データを分析する方法|インドの人口統計データを可視化してみよう

    国勢調査(センサス)とは、特定の対象人口に関する情報を体系的に記録・収集する取り組みです。収集されるデータには、人口統計、経済状況、居住環境など、さまざまなカテゴリの情報が含まれています。これらのデータは、政府が現状を正確に把握し、将来に向けた政策立案を行ううえで重要な基礎資料となります。本記事では、Pythonを活用してインドの国勢調査データを分析する方法を解説します。人口動態や経済指標など複数の観点からデータを掘り下げ、その結果をグラフとして視覚的に表現します。使用するデータセットはKaggleから入手した「India Districts Census 2011」です。データの準備と読み込