我想展示一个将两个 DataFrame 与条件索引相结合的表格。这适用于一个 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
weather
DataFrame 有一个名为的系列,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
编辑2:
原因是AttributeError: 'Series' object has no attribute '_data'
因为weather[selector2]['Dry_bulb_temperature']
是一个系列而 concat 需要一个 DataFrame不能与 Dataframe 连接,即 concat 需要两种相似的类型(前面的评论是错误的,正如下面@Philip 指出的那样)。
所以我可以将 room1 数据帧与天气数据帧结合起来。这是要走的路吗?如何避免两个“时间”系列重复?
我有许多房间(n)个数据框,并且正在考虑每个可能有一种方法来引用相同的天气数据集。