pandasはどのような種類のデータを扱いますか?#
pandasを使い始めたい
In [1]: import pandas as pd
pandasパッケージをロードして作業を開始するには、パッケージをインポートします。pandasのコミュニティで合意されたエイリアスは
pdなので、pandasをpdとしてロードすることは、すべてのpandasドキュメントの標準的な慣行と見なされています。
pandasのデータテーブル表現#
タイタニックの乗客データを保存したいです。何人かの乗客について、名前(文字列)、年齢(整数)、性別(男性/女性)のデータを知っています。
In [2]: df = pd.DataFrame( ...: { ...: "Name": [ ...: "Braund, Mr. Owen Harris", ...: "Allen, Mr. William Henry", ...: "Bonnell, Miss. Elizabeth", ...: ], ...: "Age": [22, 35, 58], ...: "Sex": ["male", "male", "female"], ...: } ...: ) ...: In [3]: df Out[3]: Name Age Sex 0 Braund, Mr. Owen Harris 22 male 1 Allen, Mr. William Henry 35 male 2 Bonnell, Miss. Elizabeth 58 female
データを手動でテーブルに保存するには、
DataFrameを作成します。Pythonのリストの辞書を使用する場合、辞書のキーは列ヘッダーとして使用され、各リストの値はDataFrameの列として使用されます。
DataFrameは、異なる種類のデータ(文字、整数、浮動小数点値、カテゴリデータなどを含む)を列に格納できる2次元のデータ構造です。これは、スプレッドシート、SQLテーブル、またはRのdata.frameに似ています。
このテーブルには3つの列があり、それぞれに列ラベルが付いています。列ラベルはそれぞれ
Name、Age、Sexです。Name列は各値が文字列のテキストデータで構成され、Age列は数値、Sex列はテキストデータです。
スプレッドシートソフトウェアでは、データのテーブル表現は非常によく似ています。
DataFrameの各列はSeriesです#
Age列のデータだけを扱いたいIn [4]: df["Age"] Out[4]: 0 22 1 35 2 58 Name: Age, dtype: int64
pandasの
DataFrameの単一列を選択すると、結果はpandasのSeriesになります。列を選択するには、角括弧[]の中に列ラベルを使用します。
注
Pythonの辞書に慣れている場合、単一列の選択は、キーに基づいて辞書の値を選択するのと非常によく似ています。
Seriesをゼロから作成することもできます。
In [5]: ages = pd.Series([22, 35, 58], name="Age")
In [6]: ages
Out[6]:
0 22
1 35
2 58
Name: Age, dtype: int64
pandasのSeriesは、DataFrameの単一列であるため、列ラベルを持ちません。Seriesは行ラベルを持っています。
DataFrameまたはSeriesで何かを行う#
乗客の最大年齢を知りたい
DataFrameでAge列を選択し、max()を適用することでこれを行うことができます。In [7]: df["Age"].max() Out[7]: 58
または
Seriesに対してIn [8]: ages.max() Out[8]: 58
max()メソッドで示されているように、DataFrameまたはSeriesで何かを*実行*できます。pandasは多くの機能を提供しており、それぞれがDataFrameまたはSeriesに適用できる*メソッド*です。メソッドは関数なので、丸括弧()の使用を忘れないでください。
データテーブルの数値データの基本的な統計に関心があります
In [9]: df.describe() Out[9]: Age count 3.000000 mean 38.333333 std 18.230012 min 22.000000 25% 28.500000 50% 35.000000 75% 46.500000 max 58.000000
describe()メソッドは、DataFrame内の数値データの概要を簡単に提供します。Name列とSex列はテキストデータであるため、これらはデフォルトではdescribe()メソッドによって考慮されません。
多くのpandas操作はDataFrameまたはSeriesを返します。describe()メソッドは、pandasのSeriesまたはpandasのDataFrameを返すpandas操作の一例です。
describeに関するその他のオプションについては、describeによる集計に関するユーザーガイドセクションを確認してください。
注
これは単なる出発点です。スプレッドシートソフトウェアと同様に、pandasはデータを列と行を持つテーブルとして表現します。表現だけでなく、スプレッドシートソフトウェアで行うようなデータ操作や計算もpandasによってサポートされています。次のチュートリアルを読み続けて、始めましょう!
覚えておいてください
パッケージをインポートします。
import pandas as pdデータのテーブルはpandasの
DataFrameとして格納されます。DataFrameの各列はSeriesです。メソッドを
DataFrameまたはSeriesに適用することで何かを行うことができます。
DataFrameとSeriesのより詳しい説明は、データ構造の紹介で提供されています。