【Python】Pandasのメソッドの紹介~データの削除、「行」「列」の追加~

Pythonの言語は、今ではEXCELでも利用できるようになっています。

EXCELでのPython利用は、基本的にはデータ分析の分野で利用することになるでしょう。

Pythonには、データ分析に役立つ「Pandas」というライブラリがあります。

これまでにも概要をまとめた記事(リンク)がありますが、「データフレーム」という形で「データ」を扱えるのが特徴です。

今回は「Pandas」の中でも、データの削除、「行」「列」の追加を行うメソッドについて、まとめようと思います。

スポンサーリンク

データの抽出

以下のメソッドでは、指定した行または列を削除します。

drop( )
また、行もしくは列を削除する対象は、順に以下を( ) 内に記載することで指定します。
index=[‘行名’]
columns=[‘列名’]

コードサンプル:

import pandas as pd

# データフレームを定義
data = {

‘名前’: [‘田中’, ‘鈴木’, ‘佐藤’, ‘山田’],
‘年齢’: [25, 30, 22, 25],
‘出身’: [‘東京’, ‘神奈川’, ‘静岡’, ‘大阪’]

}
df = pd.DataFrame(data, index=[‘A’, ‘B’, ‘C’, ‘D’])

# 「C」行(「佐藤」に紐づくデータ)を削除
del_index = df.drop(index=[‘C’])
print(‘「C」行(「佐藤」に紐づくデータ)を削除’)
print(del_index)
print(”)

# 「年齢」列を削除
del_columns = df.drop(columns=[‘年齢’])
print(‘「年齢」列を削除’)
print(del_columns)

データフレーム作成時の「index」については、行名を設定しています。「Pandasのメソッドの紹介~データの抽出~(リンク)」の「データの抽出」でも利用しています。

実行結果:

 名前 年齢 出身
A 田中 25 東京
B 鈴木 30 神奈川
D 山田 25 大阪

 名前 出身
A 田中 東京
B 鈴木 神奈川
C 佐藤 静岡
D 山田 大阪

スポンサーリンク

新しい列の追加

以下のメソッドでは、最終列に新規で列を追加します。

assign()

全ての行に対し、個別の値を設定して、列を追加したい場合に適しています。

全ての初期値を統一したものを設定する場合は、assign()を使用せずに「df[‘列名’] = ‘初期値’」と記載することで対応できます。

こちらは、別記事を作成予定です。

コードサンプル:

import pandas as pd

# データフレームを定義
data = {

‘名前’: [‘田中’, ‘鈴木’, ‘佐藤’],
‘出身’: [‘東京’, ‘神奈川’, ‘静岡’]

}
df = pd.DataFrame(data)

# 「年齢」列を追加
new_df = df.assign(年齢 = [25, 30, 22])
print(new_df)

実行結果:

  名前 出身 年齢
0 田中 東京 25
1 鈴木 神奈川 30
2 佐藤 静岡 22

新しい行の追加・上書き

以下のインデクサを用いることで、任意の位置に新規で行を追加します。

loc[]

ただし、指定したインデックスが既存のものと重複している場合、その行が上書きの処理になります。

コードサンプル:

import pandas as pd

# データフレームを定義
data = {

‘名前’: [‘田中’, ‘鈴木’, ‘佐藤’],
‘年齢’: [25, 30, 22],
‘出身’: [‘東京’, ‘神奈川’, ‘静岡’]

}
df = pd.DataFrame(data)

# インデックス4に新しい行を追加
df.loc[4] = [‘山田’, 25, ‘大阪’]
print(‘インデックス3を追加’)
print(df)

# インデックス3に新しい行を追加
df.loc[2] = [‘斎藤’, 20, ‘埼玉’]
print(‘\nインデックス2を上書き追加’)
print(df)

実行結果:

インデックス3を追加
 名前 年齢 出身
0 田中 25 東京
1 鈴木 30 神奈川
2 佐藤 22 静岡
4 山田 25 大阪

インデックス2を上書き追加
 名前 年齢 出身
0 田中 25 東京
1 鈴木 30 神奈川
2 斎藤 20 埼玉
4 山田 25 大阪

loc[]について
インデクサ「loc[]」の基本的な構文は、以下になります。
  • df.loc[row_label, column_label]
    • row_label: 行のラベルまたは条件(例: インデックス番号、ラベル、条件式など)。
    • column_label: 列のラベルまたはラベルのリスト。
これを用いて、以下のような処理を行うことができます。
  • 行選択
    • 詳細は、「Pandasのメソッドの紹介~データの抽出~(リンク)」を参照ください。
  • 条件選択
    • 詳細は、「Pandasのメソッドの紹介~データの抽出~(リンク)」を参照ください。
  • 行追加
    • 本章を参照ください。
  • 上書き
    • 本章を参照ください。

 

まとめ

今回は、Pythonで扱えるライブラリの「Pandas」のメソッドについてまとめてみました。

他にも多くのメソッドが存在するため、複数の記事に渡って解説しています。

他の記事も、ぜひ参考にしてみて下さい。

スポンサーリンク