Как заполнить значения столбца данных, если разница между значениями в другом столбце достаточно мала? - PullRequest
0 голосов
/ 21 января 2020

У меня есть фрейм данных df1:

      Time    Delta_time
0     0       NaN               
1     15      15    
2     18      3 
3     30      12    
4     45      15    
5     64      19    
6     80      16    
7     82      2 
8     100     18    
9     120     20    

, где Delta_time - это разница между соседними значениями в столбце Time. У меня есть другой фрейм данных df2, который имеет значения времени от 0 до 120 (121 строка) и другой столбец с именем «Short_gap».

Как мне установить значение Short_gap равным 1 для всех значений времени, которые l ie в значении Delta_time меньше 5? Например, столбец Short_gap должен иметь значение 1 для Time = 15,16,17,18, поскольку Delta_time = 3 <5. </p>

Edit : В настоящее время df2 выглядит следующим образом.

      Time   Short_gap
0     0      0              
1     1      0
2     2      0
3     3      0
...   ...    ...    
118   118    0
119   119    0
120   120    0

Ожидаемый вывод для df2:

      Time   Short_gap
0     0      0
1     1      0
2     2      0
...   ...    ...    
13    13     0
14    14     0
15    15     1
16    16     1
17    17     1
18    18     1
19    19     0
20    20     0
...   ...    ...
78    78     0
79    79     0
80    80     1
81    81     1
82    82     1
83    83     0
84    84     0
...   ...    ...
119   119    0
120   120    0

1 Ответ

1 голос
/ 21 января 2020

Попробуйте:

t = df['Delta_time'].shift(-1)
df2 = ((t < 5).repeat(t.fillna(1)).astype(int).reset_index(drop=True)
      .to_frame(name='Short_gap').rename_axis('Time').reset_index())
print(df2.head(20))
print('...')
print(df2.loc[78:84])

Вывод:

    Time  Short_gap
0      0          0
1      1          0
2      2          0
3      3          0
4      4          0
5      5          0
6      6          0
7      7          0
8      8          0
9      9          0
10    10          0
11    11          0
12    12          0
13    13          0
14    14          0
15    15          1
16    16          1
17    17          1
18    18          0
19    19          0
...
    Time  Short_gap
78    78          0
79    79          0
80    80          1
81    81          1
82    82          0
83    83          0
84    84          0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...