2017-12-13 7 views
0

私は、列としてinitial_order_DTを返し、別の列としてinitial_order_valueを返すPython(pandas)スクリプトを実行しようとしています。最初の注文日と顧客一人当たりの金額を返します

入力:

 Order ID  Customer ID Value Date 
     00000001  0001   1500  10/01/2017 
     00000002  0001   1300  11/15/2017 
     00000003  0001   1200  12/12/2017 
     00000004  0002   500  12/13/2017 
     00000005  0003   1750  09/15/2017 
     00000006  0003   1800  10/01/2017 
     00000007  0003   1600  11/01/2017 
     00000008  0003   1400  12/01/2017 

出力:

 Order ID  Customer ID Value Date First_Order_DT First_Value 
     00000001  0001   1500 //  10/01/2017 1500 
     00000002  0001   1300 //  10/01/2017 1500 
     00000003  0001   1200 //  10/01/2017 1500 
     00000004  0002   500  //  12/13/2017 500 
     00000005  0003   1750 //  09/15/2017 1750 
     00000006  0003   1800 //  09/15/2017 1750 
     00000007  0003   1600 //  09/15/2017 1750 
     00000008  0003   1400  etc 09/15/2017 1750 
+0

さて、私たちはすでにあなたが望むものは知っていますが、私たちはあなたが何を試みたか知りたいと思います。 SOはコーディングサービスではないので、[ask]のルールを読んでください。 – eyllanesc

+1

それは大丈夫です。私はパンダの質問にデータと予想される結果があるときに勝利と考える。 @Coldspeed。 –

+0

このソリューションにはありがとうございます。それは魅力のように働く。私はあなたの答えに投票したいと思ったが、私は新しいので、私はそれを行うことができなかったStackoverflow –

答えて

0

あなたはgroupby + transformでこれを行うことができます -

v = df.groupby('Customer ID')['Date', 'Value'].transform('first').add_prefix('First_') 
v 
    First_Date First_Value 
0 10/01/2017   1500 
1 10/01/2017   1500 
2 10/01/2017   1500 
3 12/13/2017   500 
4 09/15/2017   1750 
5 09/15/2017   1750 
6 09/15/2017   1750 
7 09/15/2017   1750 

を連結vオリジナルとdf -

df = pd.concat([df, v], 1) 
df 

    Order ID Customer ID Value  Date First_Date First_Value 
0   1   1 1500 10/01/2017 10/01/2017   1500 
1   2   1 1300 11/15/2017 10/01/2017   1500 
2   3   1 1200 12/12/2017 10/01/2017   1500 
3   4   2 500 12/13/2017 12/13/2017   500 
4   5   3 1750 09/15/2017 09/15/2017   1750 
5   6   3 1800 10/01/2017 09/15/2017   1750 
6   7   3 1600 11/01/2017 09/15/2017   1750 
7   8   3 1400 12/01/2017 09/15/2017   1750 
+0

@Coldspeed。このソリューションにはありがとうございます。それは魅力のように働く。私はあなたの答えを投票したいと思ったが、私はそれが大丈夫です@FaresAlsyoufi –

+0

に新しいですので、私はそれを行うことができませんでした。代わりに、自分の回答の横にある灰色のチェックをクリックして緑色に切り替えます。それは答えがあなたに役立ったことを示しています。 –

+0

@Coldspeed done!再度、感謝します。あなたが私の質問に投票しても感謝しています。私は多くの人々がそれからも恩恵を受けることができると確信しています:) –

関連する問題