【Python】pandasでデータの追記を行う方法

はじめに

Pythonには、様々なデータ分析に便利なライブラリがありますが、その中でもpandasは非常に人気の高いライブラリです。pandasは、データフレームという形式で表形式のデータを扱うことができ、その操作性の高さから、データ分析に欠かせないライブラリとなっています。

本記事では、pandasを用いたデータの追記について解説します。データの追記は、複数のデータソースをまとめたい場合や、データの更新を行いたい場合などに利用されます。基本的な追記方法から、条件に応じたデータの追記やデータフレームの更新まで、様々な内容を解説していきます。

pandasでデータ追記の利点と用途

pandasを用いたデータの追記には、以下のような利点があります。

  • 複数のデータソースを統合できる
  • データの更新が容易になる
  • 処理が高速である

データ追記は、以下のような用途に利用されます。

  • 複数のデータソースをまとめて分析する場合
  • 定期的に更新されるデータを扱う場合
  • データの加工や前処理を行う場合

データフレームの基本的な操作と追記について

pandasでデータを扱う場合、基本的な操作は、データの読み込み、抽出、加工、保存などです。これらの操作を行うために、pandasでは、データフレームという形式でデータを扱います。

データフレームは、表形式のデータを扱うことができ、行と列からなる二次元のデータ構造です。行はインデックス、列はカラムと呼ばれます。データフレームは、以下のように作成することができます。

import pandas as pd
# 辞書型からデータフレームを作成する
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [24, 42, 18, 32],
'gender': ['F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
print(df)

# 出力結果:

       name  age gender
0     Alice   24      F
1       Bob   42      M
2   Charlie   18      F
3     David   32      M

このように、辞書型からデータフレームを作成することができます。また、pandasでは、csvファイルやExcelファイルなどからデータを読み込むこともできます。

データフレームに新しいデータを追記する場合、基本的には、append関数を用いることができます。この関数を用いると、既存のデータフレームに新しい行を追加することができます。

import pandas as pd
# 既存のデータフレーム
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 新しいデータ
new_data = pd.DataFrame({'A': [7, 8], 'B': [9, 10]})
# append関数で新しいデータを追記する
df = df.append(new_data)
print(df)

# 出力結果:

   A   B
0  1   4
1  2   5
2  3   6
0  7   9
1  8  10

このように、append関数を用いて、既存のデータフレームに新しい行を追加することができます。

データセットの準備: 必要なライブラリのインポートとデータの読み込み

ここからは、具体的なデータを用いて、pandasでのデータ追記の方法について解説していきます。まずは、必要なライブラリをインポートします。

import pandas as pd
import numpy as np

次に、以下のようなデータを用意します。これは、ある地域の天気データを表したものです。

weather_data1 = {'date': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04'],
                 'temperature': [5, 3, 6, 7],
                 'humidity': [60, 55, 52, 49],
                 'wind': [3.5, 5.2, 4.1, 2.9],
                 'rain': [0.1, 0.2, 0.0, 0.5]}
weather_data2 = {'date': ['2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08'],
                 'temperature': [8, 9, 10, 11],
                 'humidity': [45, 42, 39, 36],
                 'wind': [3.8, 4.5, 5.1, 4.3],
                 'rain': [0.0, 0.0, 0.1, 0.2]}


df1 = pd.DataFrame(weather_data1)
df2 = pd.DataFrame(weather_data2)

このように、天気データを表すデータフレームを2つ用意します。

pandasでデータフレームにデータを追記する基本的な方法: append関数の使い方

基本的な追記方法は、先程の例と同じく、append関数を用いることができます。以下の例では、df1にdf2を追記しています。

df1 = df1.append(df2)
print(df1)

# 出力結果:

         date  temperature  humidity  wind  rain
0  2022-01-01            5        60   3.5   0.1
1  2022-01-02            3        55   5.2   0.2
2  2022-01-03            6        52   4.1   0.0
3  2022-01-04            7        49   2.9   0.5
0  2022-01-05            8        45   3.8   0.0
1  2022-01-06            9        42   4.5   0.0
2  2022-01-07           10        39   5.1   0.1
3  2022-01-08           11        36   4.3   0.2

このように、append関数を用いることで、データフレームに新しいデータを追記することができます。

応用編: 条件に応じたデータの追記とデータフレームの更新

条件に応じたデータの追記や、データフレームの更新について解説します。

条件に応じたデータの追記

ある条件に応じたデータの追記を行う場合、以下のような方法があります。以下の例では、降水量が0.1以上の日のデータを抽出し、新しいデータフレームとしてdf3に格納しています。

# 降水量が0.1以上の日のデータを抽出する
df3 = df1[df1['rain'] >= 0.1]
print(df3)

# 出力結果:

         date  temperature  humidity  wind  rain
0  2022-01-01            5        60   3.5   0.1
1  2022-01-02            3        55   5.2   0.2
3  2022-01-04            7        49   2.9   0.5
2  2022-01-07           10        39   5.1   0.1
3  2022-01-08           11        36   4.3   0.2

次に、df3に新しいデータを追記する方法を解説します。この場合、先程と同じくappend関数を用いることができます。

# 追加する新しいデータ
new_data = pd.DataFrame({'date': ['2022-01-09', '2022-01-10'],
                          'temperature': [12, 13],
                          'humidity': [33, 29],
                          'wind': [4.1, 4.5],
                          'rain': [0.3, 0.2]})

# df3に新しいデータを追記する
df3 = df3.append(new_data)
print(df3)

# 出力結果:

         date  temperature  humidity  wind  rain
0  2022-01-01            5        60   3.5   0.1
1  2022-01-02            3        55   5.2   0.2
3  2022-01-04            7        49   2.9   0.5
2  2022-01-07           10        39   5.1   0.1
3  2022-01-08           11        36   4.3   0.2
0  2022-01-09           12        33   4.1   0.3
1  2022-01-10           13        29   4.5   0.2

このように、append関数を用いて、条件に応じたデータの追記を行うことができます。

データフレームの更新

データフレームの更新を行う場合は、loc関数を用いることができます。以下の例では、インデックス番号が1の行の気温を10に更新しています。

# インデックス番号が1の行の気温を10に更新する
df1.loc[1, 'temperature'] = 10
print(df1)

# 出力結果
:

         date  temperature  humidity  wind  rain
0  2022-01-01            5        60   3.5   0.1
1  2022-01-02           10        55   5.2   0.2
2  2022-01-03            6        52   4.1   0.0
3  2022-01-04            7        49   2.9   0.5
0  2022-01-05            8        45   3.8   0.0
1  2022-01-06            9        42   4.5   0.0
2  2022-01-07           10        39   5.1   0.1
3  2022-01-08           11        36   4.3   0.2

このように、loc関数を用いることで、データフレームの特定の行や列を更新することができます。

まとめ

本記事では、pandasを用いてデータフレームに新しいデータを追記する方法について解説しました。また、条件に応じたデータの追記や、データフレームの更新についても解説しました。

データの追記や更新は、データの加工や分析を行う上で重要な操作の一つです。pandasを用いることで、簡単かつ効率的にデータの追記や更新を行うことができます。ぜひ、実際にpandasを使ってデータの加工や分析を行ってみてください。