別のデータフレームで定義された特定の日付のデータフレームの1つの列の値を合計します。日付のPythonの別のデータフレームの日付に基づく1つのデータフレームからの週単位の合計の合計
私の最初のデータフレームは、次のようになります。
import numpy as np
import pandas as pd
start_date = ["2-22-16 00:00:00", "2-29-16 00:00:00", "3-7-16 00:00:00", "3-14-16 00:00:00", "3-21-16 00:00:00", "3-28-16 00:00:00", "4-4-16 00:00:00", "4-11-16 00:00:00", "4-18-16 00:00:00", "4-25-16 00:00:00", "5-2-16 00:00:00", "5-9-16 00:00:00", "5-16-16 00:00:00", "5-23-16 00:00:00", "5-30-16 00:00:00", "6-6-16 00:00:00", "6-13-16 00:00:00", "6-20-16 00:00:00", "6-27-16 00:00:00", "7-4-16 00:00:00", "7-11-16 00:00:00", "7-18-16 00:00:00", "7-25-16 00:00:00", "8-08-16 00:00:00", "8-22-16 00:00:00", "8-29-16 00:00:00", "9-5-16 00:00:00", "9-12-16 00:00:00", "9-19-16 00:00:00", "9-26-16 00:00:00", "10-3-16 00:00:00", "10-10-16 00:00:00", "10-17-16 00:00:00", "10-24-16 00:00:00", "10-31-16 00:00:00", "11-7-16 00:00:00", "11-14-16 00:00:00", "11-21-16 00:00:00", "1-23-17 00:00:00", "1-30-17 00:00:00", "2-06-17 00:00:00", "3-13-17 00:00:00", "3-27-17 00:00:00", "6-19-17 00:00:00", "6-26-17 00:00:00"]
start_date = [pd.to_datetime(d) for d in start_date]
end_date = pd.DatetimeIndex(start_date) + pd.DateOffset(7)
ndf = pd.DataFrame({'start':pd.to_datetime(start_date),'end':end_date}); ndf.head()
は、私が欲しいのはndf
で定義された週間以内に落ちる別のデータフレームからの値です。今、私はndf
で日付の間に入るdf
からすべてのvalues
を合計し、新たなデータフレームを作成したい
dates = ["4-17-16 04:00:00", "4-16-16 19:30:00", "4-16-16 19:00:00", "2-24-16 09:00:00", "3-21-16 02:00:00", "3-18-16 10:00:00", "3-24-16 05:00:00", "3-11-16 00:00:00"]
df = pd.DataFrame(
{'timestamp': dates,
'value': np.random.randint(1,25,size=(8,))})
:私の他のデータフレームは次のようになります。私もこれで遊ん
def get_dates(x):
# Select the df values between start and ending datetime.
n = df[(df['timestamp']>ndf['start'])&(df['timestamp']<ndf['end'])]
# Return sum of values
return n.values[0],n['value'].sum()
:n = df[(df['timestamp']>ndf['start'])&(df['timestamp']<ndf['end'])]
だから私は、この関数を作成しました。しかし、私はエラー:ValueError: Can only compare identically-labeled Series objects
を取得します。
私は機能するように機能するように、上記のエラーメッセージの洞察を提供するために、私の機能を整理するのに役立つ人を探しています。ありがとう!日と終了日を開始し、あなたの特定のケースでは
あなたは基本的に7day /週間間隔でグループしようとしているかのグループにあなたの必要性が等しくない日付の範囲(別の開始日と終了日の長さのチャンクがある時間帯)であります? – Jarad
@Jaradグループ化は常に7日間ですが、これらは2016年から2017年までのすべての週には定期的ではありません。「dates」の最初の範囲は4-7-2016から11-21-2016までで、ジャンプ1-23-2017から3-27-2017まで、次に6-19-2017から6-26-2017にジャンプしてください。しかし、間隔は常に7日間です。 – JAG2024