はじめに
PythonのPandasライブラリは、データ操作と分析のための強力なツールであり、新しいデータフレームを作成する際に非常に便利です。本記事では、Pandasを使用して新しいデータフレームを作成する基本的な手順から、既存のデータフレームから特定の列を抽出して新しいデータフレームを作成する方法、複数のデータフレームを結合して新しいデータフレームを作成する方法、条件に基づいてデータフレームをフィルタリングして新しいデータフレームを作成する方法、そしてデータフレームの列を操作して新しいデータフレームを作成する方法について詳しく解説します。
Pandasを使って新しいデータフレームを作成する基本手順
新しいデータフレームを作成する基本的な手順は以下の通りです。
- Pandasライブラリをインポートする。
- データを用意する。これはリスト、辞書、CSVファイル、Excelファイルなどさまざまな形式で提供できます。
- データをPandasのデータフレームに変換する。
- 新しいデータフレームを作成し、データを追加する。
以下に具体的なコード例を示します。
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を活用してデータ分析のスキルを高めてください。