このデータフレームをグループ化してprice_1とprice_2が同じ行になるようにしたいのですが、次にreset_indexグループ化されたオブジェクトを作成し、新しいデータフレームを作成して価格1を価格2に追加します。groupbyを使用して、そのgroupbyオブジェクトに計算を必ずしも適用せずに新しいデータフレームを作成する
私の考えでは、sqlのように、サブクエリを使用してgroupbyを適用してから計算を実行します。
pythonでは、groupbysは複数のグループを作成し、それらをまとめて作成する方法で動作しますが、大きなデータフレームをitem_number、prod_name、およびcompを共有する場所に減らすことを検討しています。その新しいデータフレームを使用して、いくつかの計算を実行します。
これを見るもう1つの方法は、グループ内でそれらの列を一緒に追加し、合計である新しい列を作成し、何らかの形でそれを戻し合わせることです。
d = {
'item_number':[1234,56789,2468,1234,56789,2468],
'prod_name':['prod_a','prod_b','prod_c','prod_a','prod_b','prod_c'],
'comp':['comp_a','comp_b','comp_c','comp_a','comp_b','comp_c'],
'price_1':[20.00,16.69,36.21,0,0,0],
'price_2':[0,0,0,5,7,3.69]}
df = pd.DataFrame(data=d)
所望の出力:
d = {
'item_number':[1234,56789,2468],
'prod_name':['prod_a','prod_b','prod_c'],
'comp':['comp_a','comp_b','comp_c'],
'price_1':[20.00,16.69,36.21,0,0,0],
'price_2':[5,7,3.69]}
df = pd.DataFrame(data=d)
はあなたの試みと所望の出力を追加してください。あなたの説明は私にとって非常に曖昧です。 – Psidom
@Psidomこれが役立つことを願っています!文字通り単にgroupbyを使用して共通の値を持つ行を1つの行にマージしようとすると、price_1とprice_2が隣り合わせになるので、df ['total'] = df ['price_1'] + df ['price_2' '] –