はじめに
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を活用してデータ分析のスキルを高めてください。

![[Python]ランダムな配列を操作する(作成、ランダム取得)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-372.jpg)



