1

条件付きインデックスを使用して 2 つの DataFrame を組み合わせたテーブルを表示したいと考えています。これは 1 つの DataFrame で機能します。

room1,weather = pd.read_excel(mypath,sheetnames[0]),pd.read_excel(mypath,sheetnames[2])
selector = (room1.Time>='08:00') & (room1.Time<='18:00')
view     = ['Time','Cooling_plant_sensible_load']
room1[selector][view][:12]

これは私に次のようなものを与えます:

    Time    Cooling_plant_sensible_load
7   08:00   0.000
8   09:00   0.000
....
16  17:00   0.000
17  18:00   0.000
31  08:00   0.000

DataFrameには、ビューに追加したいweatherというシリーズがあるので、このように表示されますDry_Bulb_Temperature

    Time    Cooling_plant_sensible_load    Dry_Bulb_Temperature
7   08:00   0.000                          18
8   09:00   0.000                          22
....
16  17:00   0.000                          19
17  18:00   0.000                          16
31  08:00   0.000                          12

追加してみました:

selector2 = (weather.Time>='08:00') & (weather.Time<='18:00')
pd.concat({'room1':room1[selector][view][:12],'wea':weather[selector2]['Dry_bulb_temperature']},axis=1)

それは私にAttributeError: 'Series' object has no attribute '_data'

編集:

weather[selector2]['Dry_bulb_temperature'][:12]次のようになります。

major
7        15.3
8        16.0
9        18.0
10       19.9
11       21.9
12       22.9
13       24.0
14       25.0
15       24.8
16       24.5
17       24.3
31       16.2
Name: Dry_bulb_temperature, dtype: float64

EDIT2:

シリーズAttributeError: 'Series' object has no attribute '_data'だからweather[selector2]['Dry_bulb_temperature']起こるconcat は DataFrame を期待していますが、データフレームと連結することはできません。つまり、連結には2つの同様のタイプが必要です(以下の@Philipが指摘しているように、前のコメントは間違っています)。

したがって、room1 DataFrame と weather DataFrame を組み合わせることができます。これは行く方法ですか?2 つの「時系列」が重複しないようにするにはどうすればよいですか?

多数の room(n) データフレームがあり、それぞれが同じ気象データセットを参照する方法があるのではないかと考えていました。

4

3 に答える 3