複数の顧客からの複数の請求書を含むpandas.DataFrame
があります。 私は2つの請求書の間の時間を顧客に応じて計算するエレガントな方法を探したいと思っています。複数の請求書のインデックス、時差の取得方法 - パンダ
CustomerID InvoiceDate time between 2 orders
index
536365 17850.0 2010-12-01 08:26:00 0 minutes (or np.nat)
536366 17850.0 2010-12-01 08:28:00 2 minutes
536367 13047.0 2010-12-01 08:34:00 0 minutes (It's a new customer)
536369 13047.0 2010-12-01 08:35:00 1 minute
536371 13748.0 2010-12-01 09:00:00 0 minute (new customer)
536372 17850.0 2010-12-01 09:01:00 33 minutes (see line #2)
536373 17850.0 2010-12-01 09:02:00 1 minute
536374 15100.0 2010-12-01 09:09:00 0 minute
これは私がこれまでに見つかったものです(ただし、明らかにそれは動作しません:次のように
マイデータフレームが見えます(インデックスは送り状Noで、最後の列は、私が期待していものです) !)
df = df.sort_values(['CustomerID', 'InvoiceDate']) #To order first according
df = df.set_index('index', drop = True)
for CustomerID in df['CustomerID'].unique():
index = df.set_index('CustomerID').index.get_loc(CustomerID)
df['Ordersep'].iloc[index] = df['InvoiceDate'].iloc[index].diff()
私を助けるアイデアはありますか?これは動作するはず
ビンゴを!解決策が見えたら、それは常に明らかです。 –