Pythonの文字列データからPandasでDataFrameを構築する方法
本記事では、文字列型のデータを使ってpandasのDataFrameを構築する方法を解説します。
pandasは通常、CSVファイルの読み込みに使われることが多いですが、実はファイルではなく文字列データからも同じようにDataFrameを作成できます。その際に活用するのが、Python標準ライブラリのioモジュールが提供するStringIOです。StringIOは文字列をファイルのように扱えるラッパーであり、これを使うことで、あたかもCSVリーダーからデータを読み込んでいるかのように処理できます。
ここでは、各項目がセミコロン(;)で区切られた文字列データを例に、DataFrameの作成手順を見ていきましょう。
実装例
以下のコードでは、複数行の文字列をStringIOに渡し、pd.read_csv()のsep引数に区切り文字「;」を指定してDataFrameを生成しています。
import pandas as pd
from io import StringIO
str_data = StringIO("""Id;Subject;Course_Fee
10;DBMS;3000
11;Basic Maths;2000
12;Data Science;40000
13;Algorithm;5000
""")
df = pd.read_csv(str_data, sep=";")
print(df)コードのポイント
- StringIO: 文字列をファイルオブジェクトのように振る舞わせるためのラッパークラスです。
- sep=";": デフォルトの区切り文字はカンマですが、ここではセミコロン区切りのデータなので「;」を明示的に指定しています。
- 自動インデックス付与: 行ラベルを指定しないため、0から始まる連番インデックスが自動的に割り当てられます。
出力結果
Id Subject Course_Fee 0 10 DBMS 3000 1 11 Basic Maths 2000 2 12 Data Science 40000 3 13 Algorithm 5000
このように、StringIOとread_csv()を組み合わせれば、外部ファイルを用意することなく、プログラム内の文字列データから簡単にDataFrameを構築できます。テストデータの作成やAPIレスポンスの解析など、さまざまな場面で役立つテクニックなので、ぜひ覚えておきましょう。
-
Python・Pandas・MatplotlibでDataFrameの頻度プロット(棒グラフ)を作成する方法
PythonのPandas DataFrameでデータの頻度(出現回数)を可視化したい場合、value_counts()メソッドとMatplotlibを組み合わせることで、簡単に頻度プロットを作成できます。 この記事では、Matplotlibを使ってPandas DataFrameの頻度プロットを表示する手順を、サンプルコード付きでわかりやすく解説します。 頻度プロットを作成する手順 以下の手順に従って、DataFrameの値ごとの出現回数を棒グラフとして表示できます。 図のサイズと余白を設定する — plt.rcParamsでfigureサイズや自動レイアウト調整を指定します。 図とサブ
-
PythonのBokehを使ったデータ可視化の基本ガイド
Bokehは、Webブラウザ向けに設計されたPythonのデータ可視化ライブラリです。洗練された美しいグラフィックスを簡潔なコードで構築できるのが大きな特徴で、インタラクティブなプロットやダッシュボード、データアプリケーションを素早く簡単に作成できます。本記事では、Bokehを使ってさまざまな種類の基本的なグラフを作成する方法を解説します。 線グラフの描画 線グラフは、各点のx座標とy座標をそれぞれリストとして渡すことで作成できます。図の高さと幅を指定すれば、出力を直接ブラウザに表示することも可能です。さらに、線の太さや色といった追加のパラメータを指定することで、見た目を細かく調整できます。