在每个唯一日期的特定时间从 DF 中的列中查找值
Find values from a column in a DF at very specific times for every unique date
我问了这个问题,得到了一个答案,该答案适用于具有顺序数据和非缺失数据的一般情况,但不适用于我的情况。我有一个如下所示的 DF。
eventTime MeteredEnergy Demand RunningHoursLamps
6/7/2018 0:00 67.728 64 1037.82
6/7/2018 1:00 67.793 64 1038.82
6/7/2018 2:00 67.857 64 1039.82
6/7/2018 3:00 67.922 64 1040.82
6/7/2018 4:00 67.987 64 1041.82
6/7/2018 5:00 64 1042.82
6/7/2018 6:00 1043.43
6/7/2018 23:00 68.288
6/8/2018 0:00 67.728 64 1037.82
6/8/2018 23:00 67.793 64 1097.82
我需要一个 DF,它可以找到 "eventTime" 中每个唯一日期在第 0 小时和第 23 小时的 RunningHoursLamps 值之间的差异。 =12=]
Expected output
Date 00:00 23:00 Difference
6/7/2018 1037.82 NaN NaN
6/8/2018 1037.82 1097.82 60
更新:对于那些感兴趣的人:我找到了一种方法来做到这一点。我从 eventTime 列中解析出一个包含日期和小时的单独列,并循环遍历它并在我没有所需 DateTime 的数据时处理异常。谢谢
#for loop to build the bill dataframe
bill = pd.DataFrame()
for i in range(len(unique_dates)):
try :
if i == 0:
hour0 = np.nan
else:
hour0 = df.loc[((df['date'] == unique_dates[i]) & (df['hour'] == 0)),'RunningHoursLamp'].values[0]
except IndexError:
hour0 = np.nan
try :
hour24 = df.loc[((df['date'] == unique_dates[i+1]) & (df['hour'] == 0)),'RunningHoursLamp'].values[0]
except IndexError:
hour24 = np.nan
temp = pd.DataFrame([[unique_dates[i],hour0,hour24]],columns=['Date','Hour_0','Hour_24'])
bill = bill.append(temp,ignore_index=True)
bill
我问了这个问题,得到了一个答案,该答案适用于具有顺序数据和非缺失数据的一般情况,但不适用于我的情况。我有一个如下所示的 DF。
eventTime MeteredEnergy Demand RunningHoursLamps
6/7/2018 0:00 67.728 64 1037.82
6/7/2018 1:00 67.793 64 1038.82
6/7/2018 2:00 67.857 64 1039.82
6/7/2018 3:00 67.922 64 1040.82
6/7/2018 4:00 67.987 64 1041.82
6/7/2018 5:00 64 1042.82
6/7/2018 6:00 1043.43
6/7/2018 23:00 68.288
6/8/2018 0:00 67.728 64 1037.82
6/8/2018 23:00 67.793 64 1097.82
我需要一个 DF,它可以找到 "eventTime" 中每个唯一日期在第 0 小时和第 23 小时的 RunningHoursLamps 值之间的差异。 =12=]
Expected output
Date 00:00 23:00 Difference
6/7/2018 1037.82 NaN NaN
6/8/2018 1037.82 1097.82 60
更新:对于那些感兴趣的人:我找到了一种方法来做到这一点。我从 eventTime 列中解析出一个包含日期和小时的单独列,并循环遍历它并在我没有所需 DateTime 的数据时处理异常。谢谢
#for loop to build the bill dataframe
bill = pd.DataFrame()
for i in range(len(unique_dates)):
try :
if i == 0:
hour0 = np.nan
else:
hour0 = df.loc[((df['date'] == unique_dates[i]) & (df['hour'] == 0)),'RunningHoursLamp'].values[0]
except IndexError:
hour0 = np.nan
try :
hour24 = df.loc[((df['date'] == unique_dates[i+1]) & (df['hour'] == 0)),'RunningHoursLamp'].values[0]
except IndexError:
hour24 = np.nan
temp = pd.DataFrame([[unique_dates[i],hour0,hour24]],columns=['Date','Hour_0','Hour_24'])
bill = bill.append(temp,ignore_index=True)
bill