見出し画像

DataFrameのデータにSeriesでデータを追加

今日は、『つくってマスターPython』の第4章での学びをアウトプットします。

DataFrameインスタンス作成後にデータを追加する際には、Pandasの「Series」というクラスのインスタンスを利用します。

Seriesは、「行データを扱うためのクラス」で、1次元のリスト([1, 2, 3, 4]など)がデータ分析用に使いやすくなったものと考えればいいでしょう。

pandas.Series(データ, [, index=行名]  [, name=名前]
Seriesインスタンス作成の際には、データとなるリストまたはタプルを引数に指定します。indexという引数に、項目名(リストやタプル)を渡します。これにより、リストの形で渡されたデータがそれぞれどの項目の値なのかDataFrameが判断できるようになります。nameは、このSeriesに割り当てられる名前です。DataFrameに追加する際に用います。

データの追加

Seriesは、DataFrameのappendメソッドを使ってDataFrameに追加できます。

<<DataFrame>>.append(   <<Series>>, ignore_index=真偽値    )
appendは、DataFrameのデータを直接操作するのではなく、DataFrameにSeriesのデータを追加したDataFrameインスタンスを新たに作成して返します。そのため変数に代入して利用することが多いでしょう。

戻り値としてオブジェクト(インスタンス)が得られるので、変数に代入してあとの処理に利用するというパターンですね。

appendのignore_index

また、appendでは、ignore_indexという引数も用意されています。これは、データのインデックス値を無視して追加するためのものです。Series作成時にname引数を用意してある場合は、このnameの値がインデックスとして設定されるため、ignore_indexは省略するかFalseに設定できます。しかしname引数を用意していない場合は、ignore_index=Trueにしてインデックスを無視して追加するようにします。

では、data.csvを読み込んでDataFrameを作成し、これに更にデータを追加していきます。

import pandas as pd

csv_df = pd.read_csv('data.csv')
df = pd.DataFrame(data=csv_df, columns=['支店', '期間', '売上'])
print(df)

ad_data1 = pd.Series(['神戸', '前期', 32], index=df.columns)
ad_data2 = pd.Series(['神戸', '後期', 21], index=df.columns)
print()

ad_df = df.append(ad_data1, ignore_index=True)\
   .append(ad_data2, ignore_index=True)
print(ad_df)

サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪