Функция применения Python pandas – обновление нескольких столбцов на основе вычисленных значенийPython

Программы на Python
Ответить
Anonymous
 Функция применения Python pandas – обновление нескольких столбцов на основе вычисленных значений

Сообщение Anonymous »

Я вычисляю разницу между двумя отметками даты и времени внутри функции Apply. В рамках вычислений я хочу сохранить часть результатов вычислений (в секундах) для каждой строки в кадре данных при каждом проходе функции применения. Мне интересно, правильно ли использовать функцию Apply вместо цикла по кадру данных.
Вот мой упрощенный кадр входных данных теста



date_time



24.01.2025 12:00:00.000


24.01.2025 12:05: 00.000


24 января 2025 г. 12:10:00.000



тестовый код

Код: Выделить всё

from datetime import datetime, timezone
import pandas as pd

str_event_time = '2025-01-24T011:55:00.000Z'
event_time = datetime.strptime(str_t_zero_time,'%Y-%m-%dT%H:%M:%S.%fZ')

def calculate_time_diff(date_time):

#calculate the time diff in seconds
time_diff_secs = (date_time - event_time).total_seconds()

#save total second into new column in df
# ???

# minutes and seconds
m, s = divmod(abs(time_diff_secs), 60)

# hours and minutes
h, m = divmod(m, 60)

time_diff_string = 'T{:+03.0f}:{:02.0f}:{:05.2f}'.format(h if t_time_seconds >= 0 else -h, m, s)

return time_diff_string

def main():
#create new columns
df.insert(1,'time_delta',None,allow_duplicates=True)
df.insert(1,'time_diff_s',None,allow_duplicates=True)

time_format = '%Y-%m-%dT%H:%M:%S.%fZ'

df['time_delta'] = df['date_time'].apply(calculate_time_diff)

Желаемый кадр данных (в конечном итоге сохраненный в Excel) — это расчеты на основе статического времени события: '2025-01-24T011:55:00.000Z'
< div class="s-table-container">


time_diff_s
time_delta
date_time



< tr>
300
T-00:05:00.00
24.01.2025 12:00:00.000< /td>


600
T-00:10:00.00
2025-01-24 12:05:00.000


900
T-00:10:00.00
24 января 2025 12:10:00.000

< /tbody>

как я могу сохранить данные в столбце df['time_delta'] и df['time_diff_s'] на основе значение date_time каждый раз, когда вызывается функция применения? У меня нет большого опыта использования функции Apply, и я думал, что это более эффективно, чем циклический просмотр кадра данных. Я хотел бы узнать, как лучше всего обновить несколько столбцов в кадре данных на основе расчета другого столбца.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ulated-val
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»