Python Pandasモジュールは、基本的にオープンソースのPythonモジュールです。
計算機、データ解析、統計学などの分野で幅広く利用されています。
Pandasモジュールは、NumPyモジュールの基本的な機能を使用しています。
したがって、チュートリアルを進める前に、読者や愛好家の皆さんに、Python NumPyモジュールの基本的な理解を深めていただくことをお勧めします。
それが終わったら、一緒に飛び込んで、最も便利で興味深いモジュールの1つであるPandasの学習を始めましょう。
この記事もチェック:データ解析のためのPandasの便利な数学のメソッドを紹介していく
Python Pandas モジュールを使ってみよう
Pandasモジュールの機能を理解する前に、モジュールをインストールする必要があります(Pythonのバージョンとインストールするモジュールのバージョンの互換性は、Pandasモジュールの公式ドキュメントで確認してください)。
PythonのPandasモジュールをインストールするには、様々な方法があります。
最も簡単な方法は、PythonのパッケージインストーラであるPIPを使用してインストールする方法です。
コマンドプロンプトに以下のコマンドを入力してください。
pip install pandas
PandasとNumPyモジュールをあなたのコードに追加するために、私たちはこれらのモジュールをインポートする必要があります。
import pandas
import numpy
|
Python Pandas モジュール – Data Structures
Pandasは以下のデータ構造を扱うことができます。
- シリーズ
- データフレーム
- パネル
これらのデータ構造は、NumPyの配列と比較して高速です。
1. シリーズ
Pandas Seriesは、同種のデータを含む配列に似た1次元の構造体です。
線形データ構造であり、1次元に要素を格納します。
注:Pandasの系列データ構造のサイズは不変であり、一度設定されると動的に変更することはできません。
シリーズ内の値や要素は変更したり操作したりすることができます。
構文は以下の様な感じです。
pandas.Series(input_data, index, data_type, copy)
- input_data: リスト、定数、NumPy 配列、Dict などの鮮やかな形式で入力を受け付ける。
- index: データに渡されるインデックス。index: データに渡されるインデックス値。
- data_type: データ型。data_type: データ型を認識します。
- copy: データをコピーします。データをコピーします。デフォルトはFalse。
例えば、以下の様になります。
import pandas
import numpy
input = numpy.array([ 'John' , 'Bran' , 'Sam' , 'Peter' ])
series_data = pandas.Series( input ,index = [ 10 , 11 , 12 , 13 ])
print (series_data)
|
上記のコードでは、NumPyの配列を使って入力を提供し、インデックス値を入力データに設定しています。
出力は以下の通りです。
10 John
11 Bran
12 Sam
13 Peter
dtype: object
この記事もチェック:Pandasのdataframeでインデックスをカラム(列、行)に変換する方法
2. データフレーム
Python Pandasモジュールは、2次元配列に似た2次元構造であるDataFrameを提供します。
ここでは、入力データは行と列の形でフレーム化されています。
注:PandasのDataFrameデータ構造のサイズは変更可能です。
構文は以下の様な感じです。
pandas.DataFrame(input_data, index_value, columns, data_type, copy)
- input_data: リスト、系列、NumPy 配列、Dict、別の DataFrame などの鮮やかな形式で入力を受け付ける。
- index values: データに渡されるインデックス値。index values: データに渡されるインデックス値
- data_type: データ型。data_type: 各カラムのデータ型を認識します。
- copy: データをコピーします。デフォルトはFalse。
- columns: ラベルは、列のデータを提供した。
例えば、以下の様になります。
import pandas
input = [[ 'John' , 'Pune' ],[ 'Bran' , 'Mumbai' ],[ 'Peter' , 'Delhi' ]]
data_frame = pandas.DataFrame( input ,columns = [ 'Name' , 'City' ],index = [ 1 , 2 , 3 ])
print (data_frame)
|
上記のコードでは、リストを使って入力を行い、カラムにラベルを追加しています。
カラムには「Name」と「City」というラベルを追加し、インデックス値を設定した。
結果は、以下の通りになります。
Name City
1 John Pune
2 Bran Mumbai
3 Peter Delhi
この記事もチェック:Pandas DataFrameの単一カラムの名前を変更する
3. パネル
Python Pandasモジュールは、3次元のデータ構造であるPanelを提供し、以下の機能を提供するために3つの軸を含んでいます。
- items: (axis 0) 各項目は、その中のDataFrameに対応します。
- major_axis: (axis 1) 各 DataFrame の行に対応します。
- minor_axis: (axis 2) 各 DataFrame の columns に対応します。
構文は以下の様な感じです。
pandas.Panel(input_data, items, major_axis, minor_axis, data_type, copy)
CSVファイルからDataFrameへのデータの取り込み
Python PandasのモジュールDataFrameは、CSVファイルを使って構築することもできます。
CSVファイルは基本的にテキストファイルで、1行ごとのデータが格納されています。
各要素は「カンマ」で区切られています。
CSVファイルからDataFrameにデータを読み込むには、read_csv(file_name)メソッドを使用します。
シンタックス
構文:“`
pandas.read_csv()
例
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_267585"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas as pd</code></div><div class="line number2 index1 alt1"><code class="python plain">data </code><code class="python keyword">=</code> <code class="python plain">pd.read_csv(</code><code class="python string">'C:UsersHPDesktopBook1.csv'</code><code class="python plain">)</code></div><div class="line number3 index2 alt2"><code class="python functions">print</code><code class="python plain">(data)</code></div></div></td></tr></tbody></table></div></div></div>
出力
Name Age
0 John 21
1 Bran 22
---
## Pandas による統計解析
Python Pandasモジュールは、データの統計解析でユーザーを支援するために、多くの組み込みメソッドを考え出しました。
以下は、pandasで統計解析のために最もよく使われる関数のリストです。
| メソッド|説明|||。
| --- | --- |
| count() | 空でないすべてのオブザベーションの数をカウントします。
| sum() | データ要素の合計を返す。
| mean() | すべてのデータ要素の平均を返す。
| median() | すべてのデータ要素の中央値を返す。
| mode():すべてのデータ要素の最頻値を返します。
| std() | すべてのデータ要素の標準偏差を返します。
| min():すべての入力要素のうち最小のデータ要素を返します。|
| max():すべての入力要素のうち最大のデータ要素を返します。|
| abs():絶対値|を返します。
| prod():データ値の積を返します。
| cumsum():データ値の累積和を返します。
| cumprod():データ値の累積積を返します。
| describe():全レコードの統計的要約を一発で表示します(sum, count, min, mean, etc)。
統計解析のために提供されるさまざまな関数を理解するために、このセクションを通して使用することになる DataFrame を作成することから始めましょう。
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_254223"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"><code class="python comments">#Creating a DataFrame</code></div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number12 index11 alt1"><code class="python functions">print</code><code class="python plain">(data_frame)</code></div></div></td></tr></tbody></table></div></div></div>
出力
Name Marks Roll_num
0 John 44 1
1 Bran 48 2
2 Caret 75 3
3 Joha 33 4
4 Sam 99 5
### sum()関数
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_836197"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"><code class="python comments">#Create a DataFrame</code></div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number12 index11 alt1"><code class="python functions">print</code><code class="python plain">(data_frame.</code><code class="python functions">sum</code><code class="python plain">())</code></div></div></td></tr></tbody></table></div></div></div>
出力
Name JohnBranCaretJohaSam
Marks 299
Roll_num 15
dtype: object
上で見たように、sum()関数は各カラムのデータを別々に追加し、文字列の値があればそれを追加します。
### 平均値()関数
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_768035"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"><code class="python comments">#Create a DataFrame</code></div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number12 index11 alt1"><code class="python functions">print</code><code class="python plain">(data_frame.mean())</code></div></div></td></tr></tbody></table></div></div></div>
出力
Marks 59.8
Roll_num 3.0
dtype: float64
mean関数はsum()関数とは異なり、データ内の文字列には作用しない。
### min() function
Fake tag
Output:
Fake code
### count()
Fake tag
Output:
Fake code
### describe()
Fake tag
Output:
False code
---FALSE CODE
## Pandas でデータフレームを反復処理する
データの反復処理では、3つのデータ構造について以下のような結果が得られます。
* Series: 値の集合
* DataFrame: カラムのラベル
* パネル: 項目のラベル
DataFrame の反復処理には、以下の関数を使用することができます。
* iteritems() - データを反復処理し、(key, value) のペアを生成します。
* iterrows() - 行を反復し、(インデックス、系列) のペアで結果を返します。
* itertuples() - データ行を反復処理し、名前付きタプルまたは名前付きタプルを生成します。
例
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_458821"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number5 index4 alt2"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number7 index6 alt2"><code class="python plain">}</code></div><div class="line number8 index7 alt1"> </div><div class="line number9 index8 alt2"><code class="python comments">#Create a DataFrame</code></div><div class="line number10 index9 alt1"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number11 index10 alt2"><code class="python functions">print</code><code class="python plain">(data_frame.</code><code class="python functions">min</code><code class="python plain">())</code></div></div></td></tr></tbody></table></div></div></div>
出力
Name Bran
Marks 33
Roll_num 1
dtype: object
---
## Pandasでソートする
Pandasでデータをソートするには、以下の手法があります。
* ラベルによるソート
* 実際の値でソートする
### ラベルによるソート
sort_index() メソッドは、インデックス値に基づいてデータをソートするために使用されます。
例
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_651907"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"><code class="python comments">#Create a DataFrame</code></div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number12 index11 alt1"><code class="python functions">print</code><code class="python plain">(data_frame.count())</code></div></div></td></tr></tbody></table></div></div></div>
出力
Name 5
Marks 5
Roll_num 5
dtype: int64
### 値による並べ替え
sort_values() メソッドは、DataFrame を値で並べ替えるために使用されます。
sort_values()メソッドは、DataFrameを値で並べ替えるために使用されます。これは、値を並べ替えるために必要な列の名前を入力する 'by' パラメータを受け入れます。
例
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_589760"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"><code class="python comments">#Create a DataFrame</code></div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number12 index11 alt1"><code class="python functions">print</code><code class="python plain">(data_frame.describe())</code></div></div></td></tr></tbody></table></div></div></div>
出力。
Marks Roll_num
count 5.000000 5.000000
mean 59.800000 3.000000
std 26.808581 1.581139
min 33.000000 1.000000
25% 44.000000 2.000000
50% 48.000000 3.000000
75% 75.000000 4.000000
max 99.000000 5.000000
---
## Pandasにおけるテキストデータへの操作
PythonのString関数はDataFrameに適用することができます。
以下は、DataFrame上で最もよく使われるString関数のリストです。
| 関数
| --- |
| lower()。DataFrame内の文字列を小文字に変換します。|
| upper():データフレーム内の文字列を大文字に変換します。DataFrameの文字列を大文字に変換します。|
| len():文字列の長さを返します。文字列の長さを返します。|
| ストリップ()。DataFrameの入力の両側から空白を切り取ります。|
| split(' '): 入力されたパターンで文字列を分割します。|
| contains(pattern)。渡された部分文字列がDataFrameの入力要素に存在する場合に真を返します。|
| replace(x,y)。値xとyをシャッフルします。|
| startswith(pattern)。入力要素が与えられた引数で始まる場合、真を返す。|
| endswith(pattern)。入力要素が与えられた引数で終わるなら、真を返す。|
| swapcase: 大文字と小文字を入れ替える、またはその逆を行う。|
| islower()。これはブール値を返し、入力のすべての文字が小文字かどうかをチェックします。|
| isupper()。ブール値を返し、入力のすべての文字が大文字であるかどうかをチェックします。|
例
<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_497325"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"> </div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">)</code></div><div class="line number12 index11 alt1"><code class="python comments">#using the iteritems() function</code></div><div class="line number13 index12 alt2"><code class="python keyword">for</code> <code class="python plain">key,value </code><code class="python keyword">in</code> <code class="python plain">data_frame.iteritems():</code></div><div class="line number14 index13 alt1"><code class="python spaces"> </code><code class="python functions">print</code><code class="python plain">(key,value)</code></div><div class="line number15 index14 alt2"><code class="python functions">print</code><code class="python plain">(</code><code class="python string">"
"</code><code class="python plain">)</code></div><div class="line number16 index15 alt1"><code class="python comments">#using the iterrows() function</code></div><div class="line number17 index16 alt2"><code class="python keyword">for</code> <code class="python plain">row_index,row </code><code class="python keyword">in</code> <code class="python plain">data_frame.iterrows():</code></div><div class="line number18 index17 alt1"><code class="python spaces"> </code><code class="python functions">print</code><code class="python plain">(row_index,row)</code></div><div class="line number19 index18 alt2"><code class="python functions">print</code><code class="python plain">(</code><code class="python string">"
"</code><code class="python plain">)</code></div><div class="line number20 index19 alt1"><code class="python comments">#using the itertuples() function</code></div><div class="line number21 index20 alt2"><code class="python keyword">for</code> <code class="python plain">row </code><code class="python keyword">in</code> <code class="python plain">data_frame.itertuples():</code></div><div class="line number22 index21 alt1"><code class="python spaces"> </code><code class="python functions">print</code><code class="python plain">(row)</code></div></div></td></tr></tbody></table></div></div></div>
出力
Name 0 John
1 Bran
2 Caret
3 Joha
4 Sam
Name: Name, dtype: object
Marks 0 44
1 48
2 75
3 33
4 99
Name: Marks, dtype: int64
Roll_num 0 1
1 2
2 3
3 4
4 5
Name: Roll_num, dtype: int64
0 Name John
Marks 44
Roll_num 1
Name: 0, dtype: object
1 Name Bran
Marks 48
Roll_num 2
Name: 1, dtype: object
2 Name Caret
Marks 75
Roll_num 3
Name: 2, dtype: object
3 Name Joha
Marks 33
Roll_num 4
Name: 3, dtype: object
4 Name Sam
Marks 99
Roll_num 5
Name: 4, dtype: object
Pandas(Index=0, Name=’John’, Marks=44, Roll_num=1)
Pandas(Index=1, Name=’Bran’, Marks=48, Roll_num=2)
Pandas(Index=2, Name=’Caret’, Marks=75, Roll_num=3)
Pandas(Index=3, Name=’Joha’, Marks=33, Roll_num=4)
Pandas(Index=4, Name=’Sam’, Marks=99, Roll_num=5)
---
## Python Pandas モジュールによるデータ解析
Data Wranglingとは、基本的にデータの加工や操作のことです。
Python Pandasモジュールでは、以下の関数がData Wranglingを実現します。
* merge()。2つのDataFrameの共通の値をマージするために使用されます。
* groupby()。groupby(): 基本的に与えられたカテゴリでグループ化することによりデータを収集し表現します。
* concat() :データを連結します。ある DataFrame を別の DataFrame に追加します。
例
例:<div class="wp-block-syntaxhighlighter-code"><div><div class="syntaxhighlighter nogutter python" id="highlighter_585120"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">import</code> <code class="python plain">pandas</code></div><div class="line number2 index1 alt1"><code class="python keyword">import</code> <code class="python plain">numpy</code></div><div class="line number3 index2 alt2"> </div><div class="line number4 index3 alt1"> </div><div class="line number5 index4 alt2"><code class="python functions">input</code> <code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'Name'</code><code class="python plain">:pandas.Series([</code><code class="python string">'John'</code><code class="python plain">,</code><code class="python string">'Bran'</code><code class="python plain">,</code><code class="python string">'Caret'</code><code class="python plain">,</code><code class="python string">'Joha'</code><code class="python plain">,</code><code class="python string">'Sam'</code><code class="python plain">]),</code></div><div class="line number6 index5 alt1"><code class="python spaces"> </code><code class="python string">'Marks'</code><code class="python plain">:pandas.Series([</code><code class="python value">44</code><code class="python plain">,</code><code class="python value">48</code><code class="python plain">,</code><code class="python value">75</code><code class="python plain">,</code><code class="python value">33</code><code class="python plain">,</code><code class="python value">99</code><code class="python plain">]),</code></div><div class="line number7 index6 alt2"><code class="python spaces"> </code><code class="python string">'Roll_num'</code><code class="python plain">:pandas.Series([</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">5</code><code class="python plain">])</code></div><div class="line number8 index7 alt1"><code class="python plain">}</code></div><div class="line number9 index8 alt2"> </div><div class="line number10 index9 alt1"> </div><div class="line number11 index10 alt2"><code class="python plain">data_frame </code><code class="python keyword">=</code> <code class="python plain">pandas.DataFrame(</code><code class="python functions">input</code><code class="python plain">, index</code><code class="python keyword">=</code><code class="python plain">[</code><code class="python value">0</code><code class="python plain">,</code><code class="python value">2</code><code class="python plain">,</code><code class="python value">1</code><code class="python plain">,</code><code class="python value">4</code><code class="python plain">,</code><code class="python value">3</code><code class="python plain">])</code></div><div class="line number12 index11 alt1"><code class="python functions">print</code><code class="python plain">(</code><code class="python string">"Unsorted data frame:
"</code><code class="python plain">)</code></div><div class="line number13 index12 alt2"><code class="python functions">print</code><code class="python plain">(data_frame)</code></div><div class="line number14 index13 alt1"><code class="python plain">sorted_df</code><code class="python keyword">=</code><code class="python plain">data_frame.sort_index()</code></div><div class="line number15 index14 alt2"><code class="python functions">print</code><code class="python plain">(</code><code class="python string">"Sorted data frame:
"</code><code class="python plain">)</code></div><div class="line number16 index15 alt1"><code class="python functions">print</code><code class="python plain">(sorted_df)</code></div></div></td></tr></tbody></table></div></div></div>
出力。
Unsorted data frame:
Name Marks Roll_num
0 John 44 1
2 Caret 75 3
1 Bran 48 2
4 Sam 99 5
3 Joha 33 4
Sorted data frame:
Name Marks Roll_num
0 John 44 1
1 Bran 48 2
2 Caret 75 3
3 Joha 33 4
4 Sam 99 5
---
## Pandasでデータ可視化
出力として得られたデータは、データをプロットすることで、より良い方法で可視化することができます。
データをプロットして表示するために、まず最初に matplotlib ライブラリをインストールする必要があります。
Unsorted data frame:
Name Marks Roll_num
0 John 44 1
2 Caret 75 3
1 Bran 48 2
4 Sam 99 5
3 Joha 33 4
Sorted data frame:
Name Marks Roll_num
3 Joha 33 4
0 John 44 1
1 Bran 48 2
2 Caret 75 3
4 Sam 99 5
“`
例 データの可視化
import pandas
import numpy
input = { 'Name' :pandas.Series([ 'John' , 'Bran' , 'Caret' , 'Joha' , 'Sam' ]),
'Marks' :pandas.Series([ 44 , 48 , 75 , 33 , 99 ]),
'Roll_num' :pandas.Series([ 1 , 2 , 3 , 4 , 5 ])
} data_frame = pandas.DataFrame( input , index = [ 0 , 2 , 1 , 4 , 3 ])
print ( "Unsorted data frame: )
print (data_frame)
sorted_df = data_frame.sort_values(by = 'Marks' )
print ( "Sorted data frame: )
print (sorted_df)
|
結果は以下の通りです。
import pandas
import numpy
input = pandas.Series([ 'John' , 'Bran' , 'Caret' , 'Joha' , 'Sam' ])
print ( "Converting the DataFrame to lower case.... )
print ( input . str .lower())
print ( "Converting the DataFrame to Upper Case..... )
print ( input . str .upper())
print ( "Displaying the length of data element in each row..... )
print ( input . str . len ())
print ( "Replacing 'a' with '@'..... )
print ( input . str .replace( 'a' , '@' ))
|
まとめ
この記事では、Python Pandasモジュールで利用可能な様々な異なるメソッドや関数について理解することができました。