最初に引っかかったデータだけでマージしたい
理解しました。提供されたデータフレーム monthly_quantity と df のマージにおいて、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 データフレームから抽出してマージします。

ディスカッション
コメント一覧
まだ、コメントがありません