「初心者のためのPandasを使ったデータフォーマットのナビゲーション」

Beginner's Navigation of Data Formatting Using Pandas

はじめに

Pandasとは、名前だけではありません – それは「パネルデータ」の略です。では、それが具体的に何を意味するのでしょうか?経済学や統計学におけるPandasのデータ形式を使用します。それは、異なるエンティティや主体に対して複数の期間にわたる観察を保持する構造化されたデータセットを指します。

現代では、人々はさまざまなファイル形式でデータを保存し、アクセス可能な形式に変換する必要があります。これは、データサイエンスプロジェクトの最初のステップであり、この記事の主な話題になります。

この記事は、データサイエンスブログマラソンの一環として公開されました。

Pandasのデータサイエンスの成功の要素

  • 簡単なデータ処理: pandasの特筆すべき機能の一つは、複雑なデータタスクを簡単に処理できることです。以前は複雑なコードだったものが、pandasの簡潔な関数によってスムーズに処理されるようになりました。
  • 完璧なデータの調和: pandasは、NumPy、Matplotlib、SciPy、Scikit Learnなどの高度なライブラリとシームレスに組み合わさり、より大規模なデータサイエンスの一部として効率的に機能します。
  • データ収集の適応性: pandasは、さまざまなソースからデータを収集する柔軟性を持っています。CSVファイル、Excelシート、JSON、またはSQLデータベースであっても、pandasはすべて対応します。この適応性により、データのインポートが簡素化され、形式変換の頭痛から解放されます。

要するに、pandasの成功は、ユーザーフレンドリーな構造、データの管理能力、他のツールとの統合、さまざまなデータソースの処理能力から生まれています。これにより、データ愛好家はデータセットに隠された潜在能力を引き出し、データサイエンスの景観を再構築することができます。

Pandasはデータをきれいに整理する方法

pandasをデータ整理のオーガナイザーとして想像してみてください。pandasは、「Series」と「DataFrame」という2つのすばらしい構造を使用してデータを処理します。それらはデータストレージのスーパーヒーローのようなものです!

  • Series: Seriesは、データが配置される直線のようなものです。それは数字から単語まで、あらゆるものを保持することができます。各データには、インデックスと呼ばれる特別なラベルが付いています。それは名札のようなものです – データを簡単に見つけるのに役立ちます。Seriesは、単一の列のデータを扱うときに非常に便利です。計算や分析などのトリックを実行することができます。

  • DataFrame: DataFrameは、ミニスプレッドシートまたはファンシーテーブルのようなものです。Excelで見るような行と列があります。各列はSeriesです。したがって、「Numbers」列、 「Names」列などが持てます。DataFrameは完全なパッケージのようなものです。数値、単語など、さまざまなデータを処理するのに非常に優れています。さらに、探索やデータの整理、データの変更などの便利な機能を備えています。DataFrameの各列はSeriesです!

理論的な基礎をカバーしたところで、実際のコーディングに取り組んでみましょう。

Pandasのインストールとインポート

'''
以下のコマンドプロンプトまたはターミナルに入力して、pandasをシステムにインストールできます
'''
pip install pandas

# pandasをconda環境にインストールするには、以下を使用します

conda install pandas

# jupyter notebookのユーザーは次のコマンドを使用できます

!pip install pandas

numpyが「np」、seabornが「sns」と省略されるように、pandasも一般的に「pd」と省略されます。他の任意の省略形を使用しても、コードの実行には影響しません。ただし、「pd」は一般的な省略形であり、これを使用するとコードの可読性が向上します。この記事では、標準的な省略形「pd」を使用してpandasをインポートします。

#import pandas
import pandas as pd

次のコードは、pandasを使用してシリーズを作成する方法を示しています。

ages = pd.Series([22, 35, 58], name="年齢")

print(ages)

pandasのシリーズには列ラベルがありません。それは単なるDataFrameの単一の列です。ただし、シリーズには行ラベルがあります。

次に、例を使ってデータフレームの使用方法を学びましょう。タイタニック号の乗客データを保存したいとします。乗客の数について、名前(文字列)、年齢(整数)、性別(男性/女性)のデータを知っています。

df = pd.DataFrame(
    {
        "名前": [
            "Braund, Mr. Owen Harris",
            "Allen, Mr. William Henry",
            "Bonnell, Miss. Elizabeth",
        ],
        "年齢": [22, 35, 58],
        "性別": ["男性", "男性", "女性"],
    }
)
print(df)

これにより、辞書がDataFrameオブジェクトとして返されます。また、関数を呼び出す際にDataFrameのスペルがどのようになっているかにも注意してください。これらの例はすべてここで見つけることができます。

Pythonを読み込んで作業を開始する方法を学びました。しかし、実際のプロジェクトでは、データはおそらくもっとたくさんの行と列を持っているでしょう。それらを辞書として手動で入力するのは大変な作業です。そこで、pandasでデータをインポートするという魔法の出番です。しかも、それが今日のディスカッションの中心になります!

CSVファイル

カンマ区切り値(CSV)ファイルは、表形式データを保存するために広く使用されているため、データサイエンスにおいて重要な意味を持ちます。シンプルさとさまざまなプラットフォームやアプリケーションでの互換性から、データ交換のための普遍的な選択肢となっています。Pythonのpandasは、CSVファイルを読み込むためのエレガントな解決策を提供し、データサイエンティストがデータを簡単にロード、操作、分析できるようにしています。この効率的なプロセスにより、時間が節約され、データの整合性が保たれ、探索と洞察の抽出のための構造化されたフレームワークが提供されます。これにより、pandasはデータサイエンティストのツールキットの中で重要なツールとなります。データサイエンスの修行を始めるにあたり、CSVファイルはあなたの頼もしい相棒となるでしょう。

CSVファイルを読み込むためには、read_csv()関数を使用します。この関数はCSVファイルへのパスを取り、データをPandasのDataFrameオブジェクトに読み込みます。

# pandasライブラリをインポート
import pandas as pd

# 'sampledata.csv'という名前のCSVファイルからデータを読み込む
# 結果のDataFrameは変数'df_csv'に格納されます
df_csv = pd.read_csv('sampledata.csv')

テーブル

テーブルは、情報が行と列に整理されたデータコンテキスト内の構造化された配置です。各行は個別のレコードまたはエントリを表し、各列は特定の属性または特性に対応します。

pandasのread_table()関数は、テキストファイルから表形式のデータをpandasのDataFrameに変換する機能を提供します。呼び出されると、関数は指定されたファイルを読み取りモードで開き、各行をデータの1行として順番に処理します。デフォルトでは、関数は別々の列でタブ文字を仮定しますが、sepパラメーターを使用して区切り文字をカスタマイズすることもできます。関数はデータを読み取り、各行をDataFrameの行に変換し、各行の値を対応するDataFrameの列に変換します。関数がファイル全体を処理した後、インポートされた表形式のデータを含む結果のDataFrameを返します。これにより、テキストベースのデータを構造化されたDataFrame形式に変換する作業が簡素化されます。

# pandasライブラリをインポート
import pandas as pd

# 'data.txt'からタブを区切り文字として表形式のデータを読み込む
df = pd.read_table('data.txt', sep='\t')

# 結果のDataFrameを表示する
print(df)

Excelファイル

Excelは最も一般的なデータストレージ形式の1つです。read_excel()関数を使用すると、Excelファイルを簡単にpandasのデータフレームに読み込むことができます。xlsからxlsx、さらにはxlsb、odf、ods、odt拡張子まで、さまざまなExcelファイル形式をスムーズに読み込むことができます。ローカルドライブまたはURLから読み込むことができ、1つのシートまたは複数のシートを読み込むことができます。

# pandasライブラリをインポート
import pandas as pd

# Excelファイルの'Sheet1'から'df_excel'という変数にデータを読み込む
df_excel = pd.read_excel('sample.xlsx', sheet_name='Sheet1')

sheet_nameパラメーターを使用することで、Excelファイルで作業するシートを選択できます。

sheet_name: str、int、list、またはNone、デフォルトは0

sheet名には文字列を使用します。整数はゼロから始まるシート位置で使用されます(チャートシートはシート位置としてカウントされません)。文字列/整数のリストは複数のシートをリクエストするために使用されます。すべてのワークシートを取得するには、Noneを指定します。

利用可能なケース:

デフォルトは0: DataFrameとしての1番目のシート

1: DataFrameとしての2番目のシート

“Sheet1”: 名前が“Sheet1”のシートを読み込む

[0, 1, “Sheet5”]: 最初のシート、2番目のシート、および名前が“Sheet5”のシートをDataFrameのディクショナリとして読み込む

None: すべてのワークシート

JSON

JSON(JavaScript Object Notation)はデータの保存と交換のためのファイル形式として広く使用されています。人間と機械の両方が読みやすいデザインを持ち、さまざまなアプリケーションで柔軟に使用できるため、非常に重要です。シンプルさと柔軟性により、JSONはウェブAPI、設定ファイル、データストレージなど、さまざまな分野で頻繁に使用されます。データサイエンスにおいては、JSONは構造化データを扱い、pandasを含むさまざまな分析ツールに統合するために価値があります。pandasのフレームには、read_json()関数を使用して読み込むことができます。

# pandasライブラリをインポート
import pandas as pd

# 'data.json'という名前のJSONファイルからデータを読み込む
# 結果のDataFrameは変数'df_json'に格納されます
df_json = pd.read_json('data.json')

SQL

pandasをSQLデータベースに接続することで、さまざまな可能性が開けます。これにより、データベースに格納された構造化データとpandasの強力なデータ操作機能とをシームレスに結びつけることができます。この接続を確立することで、必要なデータを抽出し、簡単にpandasのDataFrameに変換するためにSQLクエリを活用することができます。このシナジーにより、pandasのユーザーフレンドリーな構文と多様なデータ操作関数を使用して、SQLデータを分析、可視化、操作することができます。pandasをSQLに接続することで、データベースのクエリと探索的データ分析の間のギャップが埋まり、より効率的かつ洞察力のあるデータに基づく意思決定が可能になります。

さまざまなエンタープライズレベルのデータベースには別々のパスがあります。この記事では、Pythonに対応したsqlite3データベースを使用し、read_sql()関数を使用してデータを読み取ります。

# 必要なライブラリをインポート
import sqlite3
import pandas as pd

# 'database.db'という名前のSQLiteデータベースに接続する
conn = sqlite3.connect('database.db')

# 'table_name'という名前のテーブルからすべてのデータを選択するためのSQLクエリを定義する
query = "SELECT * FROM table_name"

# 接続からSQLクエリを使用してデータを読み込み、DataFrame 'df_sql'を作成する
df_sql = pd.read_sql(query, conn)

HTML

pandasを使用してHTMLテーブルを読み込むことで、Webページから構造化データを抽出することができます。これは情報の宝庫にアクセスするようなものです。ウェブサイトでは、データを表形式で表示することがよくあり、分析に適しています。pandasのread_html()関数を利用することで、これらのテーブルを簡単にスクレイピングしてDataFrameに変換し、手動での抽出を回避することができます。ウェブスクレイピングとデータ変換のこのダイナミックな組み合わせにより、Webデータを分析ワークフローにシームレスに統合し、ローカルファイルやデータベース以外のデータユニバースを拡張することができます。

# pandasライブラリをインポート
import pandas as pd

# HTMLテーブルが含まれているURLを定義する
url = 'https://example.com/table.html'

# 提供されたURLからHTMLテーブルを読み込む
# 結果のテーブルのリストは変数'tables'に格納されます
tables = pd.read_html(url)

# リストから最初のテーブルを抽出し、DataFrame 'df_html'に格納する
df_html = tables[0]

Clipboard

pandasのread_clipboard()関数は、コンピュータのクリップボードからデータを直接DataFrameにインポートする便利な方法を提供します。使用するには、ウェブページやスプレッドシートなどのソースからクリップボードに希望の表形式のデータをコピーします。次に、Python環境(Jupyter Notebookや対話型シェルなど)で、read_clipboard()関数を呼び出します。pandasはコピーされたデータをテーブルとして解釈し、DataFrameに変換します。その後、このDataFrameを使用して作業や分析を行うことができます。この関数は、ファイルに保存せずに素早くデータをインポートしたい場合に便利です。ただし、コピーされたデータが正しく表形式で構造化されていることを確認することは、pandasによる正確な解釈のために重要です。

# pandasライブラリをインポート
import pandas as pd

# クリップボードから表形式のデータを読み込み、DataFrame 'df_clipboard'を作成する
df_clipboard = pd.read_clipboard()

HDF

pandasでHDF5ファイルを読み込むと、大規模で複雑なデータセットのデータ管理が向上します。HDF5の効率的なストレージ、階層的な構造、さまざまなデータ型への対応は、堅牢な選択肢となります。圧縮機能により、大量のデータにとって重要なストレージスペースが最適化されます。HDF5をpandasと統合することで、後者の強力なデータ操作ツールを活用し、複雑な大規模データセットの分析と探索をシームレスに行うことができます。このシナジーにより、データサイエンティストや研究者は大規模なデータを効率的に処理し、洗練された分析と洞察につながる可能性を開けます。ここでread_hdf()関数を使用します。

# pandasライブラリをインポート
import pandas as pd

# 'data.h5'という名前のHDF5ファイルからデータを読み込む
df_hdf = pd.read_hdf('data.h5', key='mydata')

# 結果のDataFrameを表示する
print(df_hdf)

Parquet

pandasでPARQUETファイルを読み込むと、多様なデータストレージと分析の解決策が提供されます。PARQUETの列指向のストレージ形式はデータの圧縮を最適化し、ストレージスペースを最小限に抑え、データアクセスのスピードを向上させます。pandasがPARQUETファイルを読み込む機能を持つことで、大規模なデータセットを効率的に処理することができ、ビッグデータのシナリオに最適です。さまざまなデータ型との互換性により、データの整合性が保たれ、pandasのデータ操作ツールとのシームレスな統合が可能です。read_parquet()関数を使用してPARQUETの利点を活用することで、大量のデータを効率的に処理し、広範なデータ分析のワークフローを加速し、広大なデータセットから洞察を得ることができます。

# pandasライブラリをインポート
import pandas as pd

# 'data.parquet'という名前のPARQUETファイルからデータを読み込む
df_parquet = pd.read_parquet('data.parquet')

# 結果のDataFrameを表示する
print(df_parquet)

Feather

pandasでFeatherファイルを読み込むことで、高性能なデータ交換と分析の手段が提供されます。Featherのバイナリストレージ形式は読み込みと書き込みのスピードを最適化し、言語間のデータの交換に最適です。read_feather()関数を使用してFeatherファイルを読み込むことで、大規模なデータセットを迅速にロードして分析することができ、データ集中型のタスクに適しています。この形式のシンプルさと高速性により、pandasのデータ操作機能とのシームレスな統合が実現できます。この組み合わせにより、大規模なデータセットを迅速に処理し、効率的な洞察の抽出を促進することができます。

# pandasライブラリをインポート
import pandas as pd

# 'data.feather'という名前のFeatherファイルからデータを読み込む
df_feather = pd.read_feather('data.feather')

# 結果のDataFrameを表示する
print(df_feather)

結論

pandasでさまざまなファイル形式を読み込むスキルは、データアナリストや科学者にとって重要です。これにより、CSV、Excel、JSON、SQLなどのソースからのデータ統合が容易になり、洞察を抽出する能力が高まります。データ収集のこの多様性により、包括的な分析の範囲が広がり、情報に基づいた効果的なデータ駆動型の意思決定のための重要なスキルセットが提供されます。そして、これがこの記事で学んだことです。

このデータ形式に関する記事のキーポイントは次のとおりです:

  • pandasの導入と、なぜデータサイエンス業界で人気があるのかを調査する。
  • pandasのデータ構造は「Series」と「DataFrames」である。
  • csv、Excel、JSONなどのファイル形式からデータをpandasのDataFrameに読み込む方法。

その他、固定幅ファイル(fwf)やSASなどの他のファイル形式もpandasで効果的に読み込むことができます。より理解を深めるために、ドキュメンテーションを参照することを強くおすすめします。

よくある質問

この記事で表示されているメディアはAnalytics Vidhyaの所有ではなく、著者の裁量で使用されています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more