嘿所有我试图根据某些条件是否满足在数据框中创建新列。最终目标是,只要建筑物,楼层和位置匹配,所有条件在列中都未被占用的行。时间比占用时间长。
我事先试过看过这个,但我不相信它符合我的想法。 Other Stack Overflow Post
愿意为此指明正确的方向。
我正在使用的当前代码:(也尝试使用循环,但我不再需要在下面发布代码)
[from IPython.display import display
df = pd.read_csv("/Users/username/Desktop/test.csv")
df2 = pd.DataFrame()
df2['Location'] = df.Location
df2['Type'] = df.Type
df2['Floor'] = df.Floor
df2['Building'] = df.Building
df2['Time'] = df['Date/Time']
df2['Status'] = df['Status']
df2 = df[~df['Condition'].isin(['Unoccupied'])]
df2['Went Unoccupied'] = np.where((df2['Location']==df['Location'])&(df2['Time'] < df['Date/Time']))
答案 0 :(得分:0)
OP尝试为Condition == occupied
的每一行添加未占用的时间。似乎数据排序良好,在被占用和未被占用之间交替。因此,我们向后移动数据集并创建一个新列time_of_next_row
。然后,查询df1.Condition == "Occupied"
。
df["time_of_next_row"] = df.shift(-1)["Date/Time"]
df_occ = df1[df1.Condition == "Occupied"]