Я пытаюсь вычислить следующее:
Когда есть
df1 (кадр данных со скоростью символов (char_speed
) субтитра, который начинается в start_time
и заканчиваетсяв end_time
):
char_speed start_time end_time
0 34 3 15
1 19 15 21
2 9 21 28
...
и
df2 (фрейм данных, в котором есть журнал прослушивания пользователя, который начинается с start_time
и заканчивается на end_time
с speed
, указанным пользователемпрослушивается с таким интервалом):
start_time end_time speed
0 9.23 20.929 1.0
1 1.4 20.26 1.5
2 20.0 27.6 1.25
...
, а затем вычисляется общее количество символов за каждый интервал:
start_time end_time speed total_char
0 9.23 20.929 1.0
1 1.4 20.26 1.5
2 20.0 27.6 1.25
...
Например, df2['total_char'].iloc[0]
будет
((15-9.23)*34) + ((20.929-15)*19)
как период времени 9,23 ~ 20,929,
в течение 9,23 ~ 15, скорость будет 34,
в течение 15 ~ 20,929, скорость будет 19
и df2['total_char'].iloc[1]
будет
(3-1.4)*0 + ((15-3)*34) + ((20.26-15)*19)
, так как между периодами времени 1,4 ~ 20,26,
в течение 1,4 ~ 3 скорость не найдена в df1, поэтому 0
в течение 3 ~ 15, скорость будет 34
, в течение 15 ~ 20.26, скорость будет 19
Я новичок в Пандах, и недавно я был загипнотизирован тем, как Паndas может быть эффективен в коротких и простых кодировках, но я не уверен, есть ли способ вычислить это в коротком и простом кодировании.Прямо сейчас я могу только придумать способ сделать это без использования функций Pandas: вызвать каждую строку df2
, а затем выполнить поиск по каждой строке в df1
и затем вычислить ее.
Было бы полезноесли бы вы могли сказать мне способ эффективно кодировать это с помощью Pandas.Или любая рекомендация функций тоже будет полезна!
Заранее спасибо!:)