[Python]Pandasで新しいデータフレームを作成する方法

はじめに

PythonのPandasライブラリは、データ操作と分析のための強力なツールであり、新しいデータフレームを作成する際に非常に便利です。本記事では、Pandasを使用して新しいデータフレームを作成する基本的な手順から、既存のデータフレームから特定の列を抽出して新しいデータフレームを作成する方法、複数のデータフレームを結合して新しいデータフレームを作成する方法、条件に基づいてデータフレームをフィルタリングして新しいデータフレームを作成する方法、そしてデータフレームの列を操作して新しいデータフレームを作成する方法について詳しく解説します。

Pandasを使って新しいデータフレームを作成する基本手順

新しいデータフレームを作成する基本的な手順は以下の通りです。

  1. Pandasライブラリをインポートする。
  2. データを用意する。これはリスト、辞書、CSVファイル、Excelファイルなどさまざまな形式で提供できます。
  3. データをPandasのデータフレームに変換する。
  4. 新しいデータフレームを作成し、データを追加する。

以下に具体的なコード例を示します。

import pandas as pd
# データを用意する(辞書形式)
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
# データをPandasのデータフレームに変換する
df = pd.DataFrame(data)
# 新しいデータフレームを作成し、データを追加する
new_df = pd.DataFrame({'名前': ['David', 'Eve'], '年齢': [28, 22]})
print(new_df)

上記のコードでは、まずPandasライブラリをインポートし、辞書形式のデータをPandasのデータフレームに変換しています。そして、新しいデータフレームを作成してデータを追加しています。

既存のデータフレームから特定の列を抽出して新しいデータフレームを作成する方法

既存のデータフレームから特定の列を抽出して新しいデータフレームを作成する場合、locまたはilocを使用します。

以下の例では、既存のデータフレームから「名前」列を抽出して新しいデータフレームを作成しています。

import pandas as pd
# 既存のデータフレームを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 特定の列を抽出して新しいデータフレームを作成
new_df = df[['名前']]
print(new_df)

上記のコードでは、df[['名前']]のように列名を指定することで、新しいデータフレームに特定の列を抽出することができます。

複数のデータフレームを結合して新しいデータフレームを作成する方法

複数のデータフレームを結合して新しいデータフレームを作成する場合、concat関数やmerge関数を使用します。以下にそれぞれの方法を示します。

1. concat関数を使用する方法:

import pandas as pd
# データフレーム1
data1 = {'名前': ['Alice', 'Bob'],
         '年齢': [25, 30]}
df1 = pd.DataFrame(data1)
# データフレーム2
data2 = {'名前': ['Charlie', 'David'],
         '年齢': [35, 28]}
df2 = pd.DataFrame(data2)
# データフレームを結合
new_df = pd.concat([df1, df2], ignore_index=True)
print(new_df)

2. merge関数を使用する方法:

import pandas as pd
# データフレーム1
data1 = {'名前': ['Alice', 'Bob'],
          '年齢': [25, 30]}
df1 = pd.DataFrame(data1)
# データフレーム2
data2 = {'名前': ['Charlie', 'David'],
'年齢': [35, 28]}
df2 = pd.DataFrame(data2)
# データフレームを結合
new_df = pd.merge(df1, df2, on='名前', how='inner')
print(new_df)

concat関数は、指定した複数のデータフレームを縦または横に結合することができます。ignore_index=Trueを指定すると、結合後の新しいデータフレームのインデックスがリセットされます。

merge関数は、指定した列をキーとしてデータフレームを結合します。上記の例では、'名前'列をキーとして結合しています。

条件に基づいてデータフレームをフィルタリングして新しいデータフレームを作成する方法

データフレームを特定の条件に基づいてフィルタリングして新しいデータフレームを作成する場合、locまたはqueryを使用します。

1. locを使用する方法:

import pandas as pd
# データフレームを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 条件に基づいてデータフレームをフィルタリング
filtered_df = df.loc[df['年齢'] > 30]
print(filtered_df)

2. queryを使用する方法:

import pandas as pd
# データフレームを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 条件に基づいてデータフレームをフィルタリング
filtered_df = df.query('年齢 > 30')
print(filtered_df)

上記のコードでは、locまたはqueryを使用して「年齢が30よりも大きい行」をフィルタリングして新しいデータフレームを作成しています。

データフレームの列を操作して新しいデータフレームを作成する方法

データフレームの列を操作して新しいデータフレームを作成する際には、apply関数やassignメソッドを使用できます。

apply関数を使用する方法:

import pandas as pd
# データフレームを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 列を操作して新しい列を作成
df['新しい列'] = df['年齢'].apply(lambda x: x * 2)
print(df)

assignメソッドを使用する方法:

import pandas as pd
# データフレームを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 列を操作して新しい列を作成
df = df.assign(新しい列=lambda x: x['年齢'] * 2)
print(df)

上記のコードでは、apply関数またはassignメソッドを使用して、既存のデータフレームの列を操作して新しい列を追加しています。

まとめ

本記事では、Pandasを使用して新しいデータフレームを作成する方法について詳しく解説しました。以下は要点のまとめです。

  • Pandasを使って新しいデータフレームを作成する基本手順を理解しました。
  • 既存のデータフレームから特定の列を抽出して新しいデータフレームを作成する方法を学びました。
  • 複数のデータフレームを結合して新しいデータフレームを作成する方法を理解しました。
  • 条件に基づいてデータフレームをフィルタリングして新しいデータフレームを作成する方法を習得しました。
  • データフレームの列を操作して新しいデータフレームを作成する方法を学びました。

Pandasをマスターすることで、データ操作と分析の能力が向上し、さまざまなデータ処理タスクを効率的に実行できるようになります。是非、Pandasを活用してデータ分析のスキルを高めてください。