Pandas
前回、Pythonのデータ解析支援ライブラリPandasでよくやる操作として、データフレーム、もしくはシリーズの連結、重複の削除、そして再インデックスするという流れを紹介しました。
その記事を書いていて思ったのが、Series(シリーズ)の使い方は全然勉強していなかったということ。
ということで今回はシリーズの作成とデータの追加・削除の方法を試していきましょう。
それでは始めていきましょう。
シリーズの作成
まずはシリーズの作成方法です。
シリーズの作成方法は2つあって(もしかしたらもっとあるかもですが)、列名と要素のリストを準備してシリーズを作成する方法と列名と要素を辞書としてシリーズを作成する方法です。
列名と要素のリストを準備してシリーズを作成する場合は、「pd.Series(index=列名のリスト, data=要素のリスト, name=シリーズ名)」です。
ちなみにシリーズ名はデータフレームでいう「行名」です。
import pandas as pd
columnname = ['A', 'B', 'C']
data1 = [1, 2, 3]
series1 = pd.Series(index=columnname, data=data1, name='1')
series1
実行結果
A 1
B 2
C 3
Name: 1, dtype: int64
列名と要素を辞書としてシリーズを作成する場合は、「pd.Series(data=列名と要素の辞書, name=シリーズ名)」です。
import pandas as pd
data2 = {'A':1, 'B':2, 'C':3}
series2 = pd.Series(data=data2, name='2')
series2
実行結果
A 1
B 2
C 3
Name: 2, dtype: int64
どちらがいいかと言われると、リストを使うのが好きか、辞書を使うのが好きかで選んでいいような気がします。
ちなみに要素だけで、つまり列名やシリーズ名無しでシリーズを作成することも可能で、その場合列名は自動で「0, 1, 2…」と付けられます。
import pandas as pd
data3 = [1, 2, 3]
series3 = pd.Series(data=data3)
series3
実行結果
0 1
1 2
2 3
dtype: int64
import pandas as pd
data4 = {'A':1, 'B':2, 'C':3}
series4 = pd.Series(data=data4)
series4
実行結果
A 1
B 2
C 3
dtype: int64
要素の追加
次に要素の追加を試していきましょう。
こちらも2つ方法があって、列名を指定して追加する方法と「append」を使う方法です。
まず列名を指定して追加する場合は「シリーズ名[‘列名’] = 値」とします。
import pandas as pd
columnname = ['A', 'B', 'C']
data5 = [1, 2, 3]
series5 = pd.Series(index=columnname, data=data5, name='1')
series5['D'] = 4
series5
実行結果
A 1
B 2
C 3
D 4
Name: 1, dtype: int64
「append」を使う場合は「シリーズ名.append(pd.Series([値], index=[‘列名’]))」です。
import pandas as pd
columnname = ['A', 'B', 'C']
data6 = [1, 2, 3]
series6 = pd.Series(index=columnname, data=data6, name='1')
series6 = series6.append(pd.Series([4], index=['D']))
series6
実行結果
A 1
B 2
C 3
D 4
dtype: int64
結構ややこしいですが、シリーズに追加できるのはシリーズの形式のデータとなるため「pd.Series([値], index=[‘列名’])」として追加する値をシリーズにしてから「append」で追加しています。
この二つの方法においては、列名を指定して追加する方法の方が圧倒的にわかりやすく、簡単に書けるかなと思います。
要素の削除
最後は要素の削除の方法です。
要素の削除をするには「シリーズ名.drop(‘列名’)」とします。
import pandas as pd
columnname = ['A', 'B', 'C']
data7 = [1, 2, 3]
series7 = pd.Series(index=columnname, data=data7, name='1')
series7 = series7.drop('A')
series7
実行結果
B 2
C 3
Name: 1, dtype: int64
これでシリーズに関して基本的なことは学べたと思います。
次回はPandasのデータフレームをmergeという関数で結合する方法を解説していきます。
ではでは今回はこんな感じで。
コメント