最初に引っかかったデータだけでマージしたい

2024年6月17日

理解しました。提供されたデータフレーム monthly_quantitydf のマージにおいて、monthly_quantity に含まれるデータのみを用いてマージしたいとのことですね。

その場合、df データフレームを monthly_quantity に含まれるデータのみでフィルタリングし、その後にマージを行います。

以下がその方法です:

python
import pandas as pd

# CSVファイルからDataFrameを読み込む
df = pd.read_csv("jutyu_data.csv", parse_dates=["受注日"], encoding="cp932")

# 月ごとの数量を集計する
df["月"] = df["受注日"].dt.month
monthly_quantity = df.groupby(["自社品番", "月"])["数量"].sum().reset_index()

# 年月の列を作成する
df["年月"] = df["受注日"].dt.to_period("M")

# df データフレームを monthly_quantity に含まれるデータのみにフィルタリングする
filtered_df = df[df["自社品番"].isin(monthly_quantity["自社品番"])]

# マージする
merged_df = pd.merge(monthly_quantity, filtered_df, how="left", on=["自社品番", "月"])

# 結果を表示する
print(merged_df)

この方法では、最初に引っかかったデータだけを含む monthly_quantity に含まれる自社品番のデータのみを df データフレームから抽出してマージします。

未分類

Posted by ぼっち