使用Python使用多个数据帧和日期时间条件计算总概率
使用下面的代码,我创建了概率字典(第二个代码块)。下面的示例代码仅适用于小时使用Python使用多个数据帧和日期时间条件计算总概率,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,使用下面的代码,我创建了概率字典(第二个代码块)。下面的示例代码仅适用于小时 # Turn into datetime and format the Timestamp according to the probability type h3_P_Ho["Timestamp"] = pd.to_datetime(h3_P_Ho["Timestamp"]).dt.strftime("%H%M").astype(int) # Create
# Turn into datetime and format the Timestamp according to the probability type
h3_P_Ho["Timestamp"] = pd.to_datetime(h3_P_Ho["Timestamp"]).dt.strftime("%H%M").astype(int)
# Create an array
h3_PR_Ho_Ar = np.array(h3_PR_Ho["Timestamp"])
# Get probability for hours
unique, counts = np.unique(h3_PR_Ho_Ar, return_counts=True)
h3_PR_Ho_Di = dict(zip(unique, counts))
h3_PR_Ho_To = sum(h3_PR_Ho_Di.values(), 0)
h3_PR_Ho_Pr = {k:v / total for k, v in h3_PR_Ho_Di.items()}
这给了我一个设备在“x”小时内打开的概率(30等于00:30等):
此外,我还获得了工作日、月日、年周和月的概率
h3_Pr_We_Pr = {1: 0.07920792079207921, 2: 0.0594059405940594, ... ,6: 0.1353135313531353}
h3_Pr_Dm_Pr = {1: 0.07590759075907591, 3: 0.11551155115511551, ... ,30: 0.036303630363036306}
h3_Pr_Wy_Pr = {8: 0.132013201320132, 9: 0.15841584158415842, ... ,13: 0.1353135313531353}
h3_Pr_Mo_Pr = {2: 0.07590759075907591, 3: 0.801980198019802, 4: 0.1353135313531353}
现在我想创建一个新的数据框,在这里我根据特定时间计算总概率。为此,我首先使用下面的代码将datetime转换为与概率字典相同的顺序
h3_Pr["Timestamp"] = pd.to_datetime(h3_Pr["Timestamp"]).dt.strftime("%H%M%w%-d%W%-m").astype(int)
这意味着2013-02-27 00:15:00变为15327082。我想知道的是,给定这个输出,计算给定日期的总概率。下面是一个关于我如何手动操作的示例
15 = 0.013
3 = 0.244
27 = 0.092
08 = 0.066
2 = 0.0759
因此,2013-02-27 00:15:00的总概率等于0.00000146
我想自动这样做,所以我创建了下面的空数据帧(h3_Pr)。KE应根据时间戳列中的值填入概率
Timestamp KE
0 327082
1 15327082 0.00000146
2 30327082
3 45327082
4 100327082
...
3449 2215303134
3450 2230303134
3451 2245303134
3452 2300303134
3453 2315303134
你知道如何自动计算总概率,而不是像我在示例中那样手动计算吗
Timestamp KE
0 327082
1 15327082 0.00000146
2 30327082
3 45327082
4 100327082
...
3449 2215303134
3450 2230303134
3451 2245303134
3452 2300303134
3453 2315303134