私は2つのデータフレームを持っています。最初のデータフレームは30分の時間間隔で1年間のエネルギーを持つ。 2番目のデータフレームは30分の価格データです。2つの時系列データフレームを掛けるためのPython DataFrame
2番目のデータフレームが最初のデータフレームの毎日に掛け算された結果を得るために2つのデータフレームを掛けることができますか?
ありがとうございました!
私は2つのデータフレームを持っています。最初のデータフレームは30分の時間間隔で1年間のエネルギーを持つ。 2番目のデータフレームは30分の価格データです。2つの時系列データフレームを掛けるためのPython DataFrame
2番目のデータフレームが最初のデータフレームの毎日に掛け算された結果を得るために2つのデータフレームを掛けることができますか?
ありがとうございました!
データフレームを時間的にも複数にもマージするような操作を行うには、まず、両方のデータフレームの日付がdatetimeindexであることを確認します。
MVCE:
df1 = pd.DataFrame({'kilowatts':np.random.randint(100,1000,(2*24*365))},index=pd.date_range('2016-01-01',periods=(2*24*365),freq='30T'))
df2 = pd.DataFrame({'Dol_per_KW':np.random.rand(48)},index=pd.date_range('2016-01-01',periods = 48,freq='30T'))
は、マージキーのために、各データフレームに毎日列の時間を作成します。乗算
df1['Time'] = df1.index.time
df2['Time'] = df2.index.time
マージと:
df_out = df1.merge(df2, on='Time',right_index=True)\
.eval('cost = kilowatts * Dol_per_KW', inplace=False)\
.sort_index()
レッツ・プリント10:00から10:30検証する毎日。
print(df_out.loc[df_out.index.hour == 10].head(10))
出力:
kilowatts Time Dol_per_KW cost
2016-01-01 10:00:00 187 10:00:00 0.460365 86.088217
2016-01-01 10:30:00 743 10:30:00 0.572282 425.205644
2016-01-02 10:00:00 364 10:00:00 0.460365 167.572786
2016-01-02 10:30:00 668 10:30:00 0.572282 382.284482
2016-01-03 10:00:00 170 10:00:00 0.460365 78.262016
2016-01-03 10:30:00 682 10:30:00 0.572282 390.296432
2016-01-04 10:00:00 336 10:00:00 0.460365 154.682572
2016-01-04 10:30:00 451 10:30:00 0.572282 258.099254
2016-01-05 10:00:00 215 10:00:00 0.460365 98.978431
2016-01-05 10:30:00 295 10:30:00 0.572282 168.823237
ありがとうございました!それはDataFrame.mulでも可能ですか? – user8486156
なぜDF1の大きさにDF2を拡張しませんか? – Wen
入力データと出力データのサンプルを表示してください。 –
ようこそ!他の人があなたをより良く助けることができるように、以下を見直してください。 https://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples – Alexander