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