Python、機械学習

【Python】空のリスト、DataFrameを作ってから要素を追加する方法

自分でコードを書いていると、一からリストやDataFrameを作る場面が多々あります。

その場合、あらかじめ空のオブジェクトを作ってから要素を追加する方法をよく使います。その方が分かりやすいですし、for文を回して要素を次々に追加することができるからです。

ここでは、空のリストやDataFrameを作ってから要素を追加する方法について説明します。

空のリストを作って、あとから要素を追加する

例えば、次のような書き方をします。

members = []
members.append('ドラえもん')
members.append('のび太')
members

[‘ドラえもん‘, ‘のび太‘]

membersという空のリストを作ってから、そこに要素を足していくという流れです。

次のように、for文と組み合わせると便利です。

members = []

names = ['ドラえもん', 'のび太', 'しずかちゃん', 'スネ夫', 'ジャイアン']

for name in names:
    members.append(str(names.index(name)) + ':' + name)

members

[‘0:ドラえもん‘, ‘1:のび太‘, ‘2:しずかちゃん‘, ‘3:スネ夫‘, ‘4:ジャイアン‘]

注意点は、リストの後ろにappend()をつけるだけだということです。次のようにイコールで結ぶ書き方は間違いです!

members = []
members = members.append('ドラえもん')
# これは間違い!

ここがDataFrameと違う点ですのでご注意ください!

空のDataFrameを作って、あとから要素を追加する

例えば、次のような書き方をします。

members = pd.DataFrame()

doraemon = pd.Series(['ドラえもん', 'ロボット', '四次元ポケット'], 
                     index=['名前', '種類', '特徴'])
nobita =  pd.Series(['のび太', '人間', '弱虫'], 
                    index=['名前', '種類', '特徴'])

members = members.append([doraemon, nobita], ignore_index=True)
members

次は、for文と組み合わせた例です。Seriesを作っては空のDataFrameに追加する、という流れです。

numbers = pd.DataFrame()

for n in range(0,10):
    number = pd.Series([n, n+1, n+2, n+3])
    numbers = numbers.append(number, ignore_index=True)
    
numbers

まとめ

いろいろな場面で使用すると思いますので、使い方を覚えておくとよいと思います。特にfor文と組み合わせるときには空リスト、空DataFrameを作ることを思い出していただければと思います。