データ解析支援ライブラリPandas
前回はデータ解析支援ライブラリPandasで行も列も指定してデータを取得する方法を解説しました。
しかし行や列を指定してデータを取得するにはどんな名前の行、列があるのか、何行、何列データがあるのかを知らなければいけません。
ということで今回は行名、列名、そして行数、列数を取得する方法を解説していきましょう。
またまた今回も準備から進めていきます。
使用するデータは、自作のダミーデータ作成プログラムで作ったこちら。
データの読み込みはこんな感じです。
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で平均値や最大値、最小値など統計的な情報を計算してみましょう。
ということで今回はこんな感じで。
コメント