18. Pandasでデータ分析

Pandas Excel、CSVファイルの読み込み、書き込み(出力)

更新日:

日々の業務で利用するデータは様々なかたちで保存されています。その中でもCSVやEXCELファイルに保存されているデータを利用することは多いと思います。この章では、これらのデータをDataFrameに読み込んだり、DataFrameで処理した結果をCSVやEXCELに保存する方法を確認していきます。
 
本章では、以下の方法について、学んでいきましょう。

  1. CSVファイルからのデータの読み込み
  2. EXCELファイルからのデータの読み込み
  3. CSVファイルへのデータの書き込み(出力)
  4. EXCELファイルへのデータの書き込み(出力)
動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

Pandasにおけるread_csvによるCSVファイルの読み込み

CSVからのデータの読み込みは、read_csvにて行います。

pd.read_csv(CSVファイル名, index_col=インデックスに指定する列名/列の番号)

 
引数index_colの指定は任意ですが、指定することにより、インデックスも合わせて設定することができます。指定しなければ、インデックスとして連番が振られます。引数index_colには、インデックスに指定する列名、もしくは、一番左の列を0として順に1ずつ加算した、列の番号を元に指定することもできます。
 
読み込むCSVファイルは、作業を行っているディレクトリに格納されている必要があります。ディレクトリを指定して読み込むこともできますので、その方法については、後ほど紹介します。
 
それでは実際の例を確認しましょう。CSVファイル「T_Sales_Header.csv」を読み込み、インデックスに"Sales_No"を指定します。そして、その結果を変数df_salesにDataFrameとして格納します。次に変数df_salesの内容をheadを用いて上位5行を表示します。

In [1]: import pandas as pd
...: df_sales=pd.read_csv("T_Sales_Header.csv",index_col=["Sales_No"])
...: df_sales.head()
Out[1]:

 
 
 
 
 
 

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

Pandasにおけるread_csvでのディレクトリの指定方法

作業を行っているディレクトリではなく、別のディレクトリからファイルを読み込む場合、ディレクトリの指定方法は、ファイル名の前にディレクトリを記述します。その際に、その前にrを付加します。例えば、ディレクトリ”C:\Test_Folder\Test_Folder2\Test_Folder3”の配下に先ほど利用したCSVファイル”T_Sales_Header.csv”を保存し、このCSVファイルを読み込む場合は、次のように書きます。

In [2]: df_sales = pd.read_csv(r"C:\Test_Folder\Test_Folder2\Test_Folder3\T_Sales_Header.csv"
...:                                      , index_col=["Sales_No"])
...: df_sales.head()
Out[2]:

 
 
 
 
 
 

 
 

Pandasにおけるread_excelによるEXCELファイルの読み込み

EXCELからのデータの読み込みは、read_excelを利用します。

pd.read_excel(EXCELファイル名, sheet_name=シート名, index_col=インデックスに指定する列名/列の番号)

1つのEXCELファイルには複数のシートが含まれることがありますので、引数shet_nameでは、読み込み対象のシート名を指定します。引数index_colはread_csvと同じです。
 
EXCELファイル「T_Sales_Item.xlsx」のシート「T_Sales_Item」のデータを読み込み、インデックスに"Sales_No"、”Sales_Item_No”を指定します。ここでは、列名ではなく、列の番号をリストに格納して指定しています。そして、その結果を変数df_sales_itemにDataFrameとして格納し、次に変数df_sales_itemの上位5行を表示します。

In [3]: df_sales_item=pd.read_excel("T_Sales_Item.xlsx",
...:                                     sheet_name="T_Sales_Item",
...:                                     index_col=[0,1])
...: df_sales_item.head()
Out[3]:

 
 
 
 
 
 

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

Pandasにおけるto_csvによるCSVファイルへの書き込み(出力)

DataFrameに保持しているデータをCSVファイルへ書き込むには、to_csvを使います。

pd.to_csv(保存先のディレクトリ + CSVファイル名)

 
それでは先ほど読み込んだdf_salesの内容を、ファイル名”T_Sales_Header2.csv”で、ディレクトリ”C:\Test_Folder\Test_Folder2\Test_Folder3”の配下にCSVファイルとして出力しましょう。ファイル名の前にディレクトリを記述します。そして、その前にrを付加します。

In [4]: df_sales.to_csv(r"C:\Test_Folder\Test_Folder2\Test_Folder3\T_Sales_Header2.csv")

 
エクスプローラーでディレクトリ”C:\Test_Folder\Test_Folder2\Test_Folder3”の中を確認すると、CSVファイル”T_Sales_Header2.csv”が出力されていることがわかります。CSVファイルを開くとdf_salesと同じデータが保存されています。
 

 
 

Pandasにおけるto_excelによるEXCELファイルへの書き込み(出力)

DataFrameに保持しているデータをEXCELファイルへ書き込むには、to_excelを使います。

pd.to_excel(保存先のディレクトリ + EXCELファイル名, sheet_name=シート名)

 
1つのEXCELファイルには複数のシートが含まれることがありますので、引数shet_nameでは、書き込み先のシート名を指定します。
 
次にdf_salesの内容を、ファイル名”T_Sales_Header3.xlsx”で、ディレクトリ”C:\Test_Folder\Test_Folder2\Test_Folder3”の配下にEXCELファイルとして出力します。出力先のシート名は、”T_Sales_Header3”とします。

In [5]: df_sales.to_excel(r"C:\Test_Folder\Test_Folder2\Test_Folder3\T_Sales_Header3.xlsx",
...:                   sheet_name=”T_Sales_Header3”)

 
エクスプローラーでディレクトリ”C:\Test_Folder\Test_Folder2\Test_Folder3”の中を確認すると、EXCELファイル”T_Sales_Header3.xlsx”が出力されていることがわかります。EXCELファイルを開くとシートT_Sales_Header3には、df_salesと同じデータが保存されています。
 
 

 
 
関連記事です。
Pandasの中心となるDataFrame(データフレーム)については、次の記事で詳しく解説しております。

 






まとめ記事

1

Python3におけるWEBスクレイピングのやり方について初心者向けに解説した記事です。   Requests、Beautiful Soup、Selenium、Pandas、newspape ...

2

Pythonの基本的なトピックについて、チュートリアル形式で初心者向けに解説した記事です。プログラミング未経験者や初心者でもわかりやすいよう、丁寧に解説しています。   Pythonでデータ ...

3

Pandas(パンダス)とは、データを効率的に扱うために開発されたPythonのライブラリの1つで、データの取り込みや加工・集計、分析処理に利用します。   Pandasには2つの主要なデー ...

4

データ分析、機械学習、ディープラーニングにはグラフの描画による可視化は不可欠です。データは、加工前の状態ではただの数字の羅列でしかなく、一目で必要な情報が伝わるものではありません。それを集計しグラフに ...

5

NumPy(ナンパイ)は、数値計算を効率的に行うための拡張ライブラリです。ベクトルや行列などを効率的に数値計算するための数学関数ライブラリを提供します。NumPyを使うことにより、数値計算をより早く、 ...

-18. Pandasでデータ分析

Copyright© AI-interのPython3入門 , 2020 All Rights Reserved.