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が適しています。それぞれの特徴を理解して使い分けることで、データ分析の前段階であるデータ取得を効率化できます。
-
Pythonで顧客離反(チャーン)を予測する方法:機械学習による実践ガイド
あらゆるビジネスは顧客のロイヤルティに依存しています。リピート購入は企業の収益性を支える重要な柱の一つであり、顧客が離れていく理由を把握することは極めて重要です。このように顧客が離反していく現象は「カスタマーチャーン(Customer Churn)」と呼ばれます。過去の傾向を分析することで、どのような要因が顧客離反に影響を与えているのかを把握し、特定の顧客が離反するかどうかを予測できるようになります。本記事では、機械学習アルゴリズムを使って過去の顧客離反データの傾向を分析し、どの顧客が離反する可能性が高いかを判定する方法を解説します。データの準備例として、通信業界(Telecom)の顧客離反デ
-
Pythonで国勢調査データを分析する方法|インドの人口統計データを可視化してみよう
国勢調査(センサス)とは、特定の対象人口に関する情報を体系的に記録・収集する取り組みです。収集されるデータには、人口統計、経済状況、居住環境など、さまざまなカテゴリの情報が含まれています。これらのデータは、政府が現状を正確に把握し、将来に向けた政策立案を行ううえで重要な基礎資料となります。本記事では、Pythonを活用してインドの国勢調査データを分析する方法を解説します。人口動態や経済指標など複数の観点からデータを掘り下げ、その結果をグラフとして視覚的に表現します。使用するデータセットはKaggleから入手した「India Districts Census 2011」です。データの準備と読み込