こんにちは!スタビジ編集部です!
この記事ではpythonでよく使われるデータ型の1つ”list型(リスト)“に要素を追加する”appendメソッド“について解説していきたいと思います!
“[]”とか”{}”とかややこしい、、、要素を追加するって???
今回はその中で頻繁に使われる”list型(リスト)“を見ていくよ!
そこでは要素を追加する”appendメソッド“がとても大事なんだ!
ぜひlist型の基本についてしっかりおさえて扱えるようになっておきましょう!
目次
list型(リスト)とは?
まずは変数のデータ型の一つ”list型(リスト)”について見ていきましょう!
Pythonの変数について
Pythonの変数は「値を格納して置く場所」というイメージを持っておくと理解しやすいと思います!
a = 1
こうすると”a”という変数に1という整数値が格納されました!
print(a)
>>1
そのため”a”を呼び出すと1が返ってきます!
また、変数に格納する値は上書きすることも出来ます!
a = 1
print(a)
a = 2
print(a)
>>1
2
このように好きな値を変数に格納しておくことで、その値を変数を呼び出すことによって利用することが出来ます!
そんな変数にそれぞれ扱うデータに応じた型がPythonで用意されています!
整数を扱う”int型”や文字列を扱う”str型”など様々な方があり、状況に応じて適切な型を選択していきます!
a = 1
type(a)
>>int
type(変数)と入力するとその変数のデータ型を調べることが出来ます!
そんな変数のデータ型の一つが今回の主役の”list型”になります!
list型(リスト)について
続いてlist型について見ていきましょう!
list型は[ ]の中にカンマで数値や文字列を並べた型です!
a = [1, 2, "hello"]
type(a)
>>list
配列とも呼ばれていて、複数のデータを格納出来ます!
a = [1, 2, "hello", [3,4]]
b = []
格納するデータに指定はなく数値や文字列以外にも別のリストを格納することや空のリストを作成出来ます!
このリストから要素を取り出したい場合はインデックスを指定します!
a = [1, 2, "hello"]
a[0]
>>1
この時、リストの要素にはインデックスと呼ばれる通番が振られており、最初の要素は0番目になります!
そのため、a[0]のように記述して、aの0番目の要素を指定してあげることで1を取り出すことが出来ます!
a[-1]とマイナスの値を入れてあげることで最後尾からのインデックスが指定されます!
a = [1, 2, "hello"]
a[-1]
>>"hello"
最後尾の要素が取り出されていることが確認できました!
また、似たようなデータ型に”tuple型(タプル)“というものがあります!
a = (1,2,"hello")
type(a)
>>tuple
list型は[]で括るのに対し、tuple型は()で括っていますね!
list型とtuple型の違いは、list型は中身の要素の変更が出来ますが、tuple型では出来ない所です!
データの中身を固定値として変更したくない場合はtuple型を使ってみましょう!
データ分析では一度に複数の値を扱うからこのlist型の使い方はマスターしたい!
appendメソッドとは?
さて、Pythonのlist型はtuple型と違い、要素を追加したり削除できる点が特徴です!
Pythonにはリストに利用できるメソッドが用意されており、そのメソッドを使って要素を操作していきます!
今回はそのメソッドの一つ”appendメソッド“を見ていきます!
他のメソッドについて興味がある方はPythonの公式ページを参照ください!
appendの基本
“appendメソッド“はlistの最後尾に指定した要素を追加するものになります!
a = [1, 2, 3, "hello"]
a.append(3)
print(a)
>>[1, 2, 3, "hello", 3]
list.append(要素)とすることで、listの最後尾に要素が追加されたことがわかります!
文字列や別のリストを要素として追加することも出来ます!
a = [1, 2, 3, "hello"]
a.append("world")
print(a)
>>[1, 2, 3, 'hello', 'world']
a = [1, 2, 3, "hello"]
b = [4, 5, "world"]
a.append(b)
print(a)
>>[1, 2, 3, 'hello', [4, 5, 'world']]
リストに要素が追加されていることが確認できます!
ここで注意ポイントは「appendメソッド一つで追加できる要素は一つ」!
a = [1, 2, 3, "hello"]
a.append(4, 5)
print(a)
>>
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-3fceacd7c15e> in <module>()
1 a = [1, 2, 3, "hello"]
----> 2 a.append(4, 5)
3 print(a)
TypeError: append() takes exactly one argument (2 given)
複数の要素を追加しようとするとエラーになります!
複数の要素を追加した場合はappendメソッドを繰り返し使うか次に説明するextendメソッドを使う方法があります!
extendメソッドとinsertメソッド
listに要素を追加する方法はappendメソッド以外にもあります!
それが”extendメソッド“と”insert”メソッド“です!
“extendメソッド”は「別のリストやタプル内の要素をリストに追加してリストを拡張する」メソッドです!
a = [1, 2, 3, "hello"]
b = [4, "world"]
a.extend(b)
print(a)
>>[1, 2, 3, 'hello', 4, 'world']
先ほどのappendでは、bというリストがそのまま要素として追加されていましたが、extendではbのリストの要素すべてがaのリストに追加されます!
a = [1, 2, 3, "hello"]
a.extend("world")
print(a)
>>[1, 2, 3, 'hello', 'w', 'o', 'r', 'l', 'd']
要素に文字列を追加すると文字の一つ一つが要素として追加されます!
複数の要素を追加したい場合、複数の要素をリストに格納してextendメソッドを使うという方法もありですね!
a = [1, 2, 3, "hello"]
a.extend(4)
print(a)
>>
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-14-f62ba9e1fdbe> in <module>()
1 a = [1, 2, 3, "hello"]
----> 2 a.extend(4)
3 print(a)
TypeError: 'int' object is not iterable
ただ、extendメソッドはリストかタプルといったデータ型(イテラブル)しか対象に出来ないので、数字や文字列を直接追加できないので注意してください!
“insertメソッド”は「リストの指定した位置に要素を追加する」メソッドです!
a = [1, 2, 3, "hello"]
a.insert(2, 4)
print(a)
>>[1, 2, 4, 3, 'hello']
list.insert(順番, 要素)とすることで、指定した順番(インデックス)の前に要素が追加されます!
先頭に追加したい場合は順番は「0」を指定しましょう!
a = [1, 2, 3, "hello"]
b = [3, "world"]
a.insert(0, b)
print(a)
>>[[3, 'world'], 1, 2, 3, 'hello']
他にデータを追加できるextendメソッドやinsertメソッドも併せて押さえておこう
appendを使ってみよう!
では、実際にappendメソッドを使ってみましょう!
基本は「list.append(要素)」でした!
a = [1, 2, 3, "hello"]
b = [6, "LIST"]
a.append(4)
a.append("world")
a.append(b)
print(a)
>>[1, 2, 3, 'hello', 4, 'world', [6, 'LIST']]
別のリストも一つの要素として追加できるんでしたね!
続いて0~10の整数値をリストに加えていきましょう!
a = []
for i in range(11):
a.append(i)
print(a)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
最初に空リスト[]を定義して、for文で0から順番にappendで追加していきました!
appendメソッドでは一つの要素しか追加できないので、for文で繰り返して複数の要素をリストに追加することが多いので押さえておきましょう!
最後に応用編として「csvファイルの中身のデータをリストで格納」していきましょう!
testフォルダにtestファイルを用意します!
テストファイルの中身はユーザーデータが入っていて名前や年齢といったデータが登録されているとしましょう!
ファイルの中身のデータをappendで空のリストdata_listに追加します!
import glob
import pandas as pd
files = glob.glob("test/*.csv")
data_list = []
for file in files:
data_list.append(pd.read_csv(file))
data_listの中身を見ていきましょう!
この時globという関数を利用して複数のファイル名を抽出しています。
globについて知りたい方は以下の記事を参考にしてみてください!
[ ID NAME AGE
0 1 kato 19
1 2 kimura 23
2 3 suzuki 42
3 4 tanaka 11, ID NAME AGE
0 12 arakawa 21
1 32 sato 17
2 44 kagawa 29
3 45 endo 34, ID NAME AGE
0 6 maeda 37
1 23 baba 21
2 15 honda 10
3 55 morita 62]
少しわかりづらいですが、各ファイルの中身がそれぞれ要素としてリストに追加されていることがわかります!
print(pd.concat(data_list))
>>
ID NAME AGE
0 1 kato 19
1 2 kimura 23
2 3 suzuki 42
3 4 tanaka 11
0 12 arakawa 21
1 32 sato 17
2 44 kagawa 29
3 45 endo 34
0 6 maeda 37
1 23 baba 21
2 15 honda 10
3 55 morita 62
concat関数で一つのデータフレームとして結合することで見やすくなりました!
このように複数のcsvファイルからデータを結合するときにもappndメソッドを使います!
いろいろ手を動かして使い方をマスターしよう!
appendまとめ
ここまでlist型(リスト)とは?から始まりappendの使い方まで解説していきました!
list型(リスト)はPythonで頻出するデータ型で要素を追加したり削除できるのが特徴でした!
“appendメソッド“はリストのメソッドの一つで「リストの最後尾に要素を一つする」というシンプルなものでしたが、いろんな場面で利用されます!
extendメソッドやinsertメソッドの違いにも触れながら学習してみてください!
他にもPythonについて詳しく学びたい方は以下のUdemyの講座を是非チェックしてみてください!
【実践】ビジネスケースとつなげてPythonで出来ること5つを学べる3日間集中コース
もっと踏み込んでデータ分析の方法について詳しく学びたい方は当メディアが運営するAIデータサイエンス特化スクールの「スタアカ(スタビジアカデミー)」をチェックしてみてください!
公式サイト:https://toukei-lab.com/achademy/
【価格】 | ライトプラン:1280円/月 プレミアムプラン:149,800円 |
---|---|
【オススメ度】 | |
【サポート体制】 | |
【受講形式】 | オンライン形式 |
【Pythonの学習範囲】 | データサイエンスを網羅的に学ぶ 実践的なビジネスフレームワークを学ぶ 実際に実データを使った様々なワークを行う |
データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!
当メディアが運営するスクールです。
24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します!
カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!
他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。
そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコースになっています!
ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます!
・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析
・世界最大手小売企業のウォルマートの実データを用いた需要予測
・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定
また、Pythonを勉強したいけどやり方がわからない、、、という方は以下の記事で勉強法をまとめていますので是非チェックしてみてください!