Pythonのデータ解析支援ライブラリPandas 〜その5 行名、列名の取得と行数、列数、全要素数の取得〜

スポンサーリンク

データ解析支援ライブラリPandas

前回はデータ解析支援ライブラリPandasで行も列も指定してデータを取得する方法を解説しました。

Pythonのデータ解析支援ライブラリPandas 〜その4 行と列の両方を指定して取得〜
データ解析支援ライブラリPandas前回はデータ解析支援ライブラリPandasで列を指定してデータを取得する方法を解説しました。行も列も取得する方法が色々あって、なかなかややこしいですが、今回はさらにややこしい行と...

しかし行や列を指定してデータを取得するにはどんな名前の行、列があるのか、何行、何列データがあるのかを知らなければいけません。

ということで今回は行名、列名、そして行数、列数を取得する方法を解説していきましょう。

またまた今回も準備から進めていきます。

使用するデータは、自作のダミーデータ作成プログラムで作ったこちら。

Pythonでファイル数、行数、列数を指定してダミーデータのファイルを生成するプログラムを作ってみた
ランダムデータのファイルが欲しい!前にjunney様より「グラフタイトルをファイル名としたい」というご質問を頂き、答えてみました。ただどうやら他にもプログラムが動いていない部分があるようで、再度ご質問を頂きました。...

データの読み込みはこんな感じです。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

df

実行結果

ということで解説していきましょう。

スポンサーリンク

行名を取得する方法:.index、.index.values

まずは行名を取得する方法です。

行名を取得するには「.index」か「.index.values」を用います。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.index)

実行結果
Index(['data_1', 'data_2', 'data_3', 'data_4', 'data_5', 'data_6', 'data_7',
       'data_8', 'data_9', 'data_10'],
      dtype='object', name='dataname')
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.index.values)

実行結果
['data_1' 'data_2' 'data_3' 'data_4' 'data_5' 'data_6' 'data_7' 'data_8'
 'data_9' 'data_10']

この二つで何が違うかというと取得している形式が違います。

どんな形式(型といいます)で取得しているか調べるにはtype関数を用います。

試してみましょう。

最初の「.index」で取得した場合はこんな感じ。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(type(df.index))

実行結果
<class 'pandas.core.indexes.base.Index'>

Pandasに特有のインデックスという形式で取得されているようです。

二つ目の「.index.values」で取得した場合はこんな感じ。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(type(df.index.values))

実行結果
<class 'numpy.ndarray'>

こちらはnumpyの配列(アレイ)で取得されているのが分かります。

ちなみにfor関数で一つずつ取得して表示してみるとこんな感じです。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

for name in df.index:
    print(name)

実行結果
data_1
data_2
data_3
data_4
data_5
data_6
data_7
data_8
data_9
data_10
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

for name in df.index.values:
    print(name)

実行結果
data_1
data_2
data_3
data_4
data_5
data_6
data_7
data_8
data_9
data_10

どっちも同じ結果になるので、あまり使い分けを気にする必要はなさそうです。

スポンサーリンク

列名を取得する方法:.columns、.columns.values

列名を取得するには、「.columns」「.columns.values」の2種類があります。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.columns)

実行結果
Index(['value_1', 'value_2', 'value_3', 'value_4', 'value_5'], dtype='object')
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.columns.values)

実行結果
['value_1' 'value_2' 'value_3' 'value_4' 'value_5']

この二つも先ほど解説した「.index」「.index.values」と同じように型が異なります。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(type(df.columns)

実行結果
<class 'pandas.core.indexes.base.Index'>
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(type(df.columns.values))

実行結果
<class 'numpy.ndarray'>

こちらも先ほどの「.index」と「.index.values」と同じようにそこまで気にして使い分ける必要はないと思います。

スポンサーリンク

行数・列数を取得する方法 その1:len関数

行名、列名を取得できたということで、今度は行数、列数を取得する方法を解説していきます。

ただこちらでは特殊なコマンドがあるわけではなく、先ほど取得した行名、列名でlen関数を使って数を表示します。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(len(df.index))

実行結果
10
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(len(df.index.values))

実行結果
10
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(len(df.columns))

実行結果
5
import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(len(df.columns.values))

実行結果
5

ちょっと変わった例として、Pandasで読み込んだ格納した変数を直接len関数で数を表示しても、行数が出てきます。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(len(df))

実行結果
10
スポンサーリンク

行数・列数を取得する方法 その2:.shepe

また別の方法として、Pandasには行数、列数をそのまま取得できるコマンドも準備されています。

それが「.shape」です。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.shape)

実行結果
(10, 5)

最初の数字が行、2番目が列ということです。

もちろん最初の数のインデックス(0)を指定すれば、行数が取得できます。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.shape[0])

実行結果
10

2番目のインデックス(1)を指定すれば、列数が取得できます。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.shape[1])

実行結果
5
スポンサーリンク

全要素数を取得する方法:.size

ついでに全要素数を取得する方法を解説しておきます。

もちろん全要素数は行数×列数なので、先ほどの行数、列数から計算してもいいのですが、「.size」というコマンドでも取得できます。

import pandas as pd

df = pd.read_csv("python-pandas-2_data.txt", index_col=0)

print(df.size)

実行結果
50

今回はPandasの行名、列名、そして行数、列数を取得する方法、さらには全要素数、データの情報を表示する方法を解説しました。

とりあえず行名は「.index」、列名は「.columns」、そしてそれぞれの数を出すにはlen関数を使えばいいと覚えておけば十分な気がします。

次回はPandasで平均値や最大値、最小値など統計的な情報を計算してみましょう。

Pythonのデータ解析支援ライブラリPandas 〜その6 行、列に対しての合計値、平均値、中央値、最大値、最小値、標準偏差を計算〜
データ解析支援ライブラリPandas前回はデータ解析支援ライブラリPandasで行と列の両方を指定してデータを取得する方法を解説しました。ここまではデータを読み込んで表示するということばかりでした。でもPa...

ということで今回はこんな感じで。

コメント

タイトルとURLをコピーしました