我有两个具有以下结构的数据框。
.... | Time | Site | AA | BB | CC |
58 | 20-04-2019 08:00:00 - 21-04-2019 08:00:00 | AR25 | 1 | NS | 93 |
59 | 21-04-1019 08:00:00 - 22-04-2019 08:00:00 | DP88 | NS | | 3 |
60 | 21-04-1019 08:00:00 - 22-04-2019 08:00:00 | DP88 | | 1 | 15 |
.... | Time | Error | Site |
10 | 20-04-2019 09:25:15 | 401 | AR25 |
11 | 20-04-2019 11:00:10 | 401 | AR25 |
15 | 21-04-2019 23:25:16 | 404 | DP88 |
AA,BB,CC列存储有关每个站点的一些测量信息,可以包含数字值或为空。 AA,BB,CC中的记录可能取决于日期和站点。所以基本上我的步骤是:
1.在DF1中获取在AA中有记录的行(然后是BB,然后是CC);
2.使用时间间隔和站点名称作为在DF2中查找行的键
3.将DF1中行的索引(索引)放入与DF3中相应的AA / BB / CC列相对应的时间,错误和站点记录。
.... | Time | Error |Site | AA | BB | CC |
1 | 20-04-2019 09:25:15 | 401 |AR25 | 58 | | 58 |
2 | 20-04-2019 11:00:10 | 401 |AR25 | 58 | 58 | |
2 | 21-04-2019 23:25:16 | 404 |DP88 | 59,60 | 59,60 | 59,60 |
为了易于使用,我将DF1中的“时间”列分为两列-“开始”和“结束”
df1['Start'] = df1['Time'].str.split(' - ').str[0]
df1['End'] = df1['Time'].str.split(' - ').str[1]
df1['Start'] = pd.to_datetime(df1['Start'])
df1['End'] = pd.to_datetime(df1['End'])
cols = ['AA','BB', 'CC']
for column in df1[cols]:
df1 = df1[(df1[column]!= 'NS') & (df1[column] != '0')]
for name in df1['Site'].unique():
if df2['Site'].str.contains(name) & df2['Time'].between(df1['Start'].values[0],df2['End'].values[0]):
values = df1.index.values.tolist()
df3[column] = [values]
第1步和第2步没问题,但第3步什么也没做。问题是我无法获取如何使用所需结构来构建df3的索引,因为可能会重复以及每个AA,BB,CC列的多个索引。
是否有可能达到预期的结果?如果是,请提供一些我需要做的线索。
预先感谢
答案 0 :(得分:1)
使用:
.display-none {
display: none;
}
// Important: .display-none class has to go before .material-icons ones!!!
<i class="display-none material-icons">settings</i>