Как создать временную метку столбца при использовании apply в pandas dataframe? - PullRequest
0 голосов
/ 19 декабря 2018

Я применяю некоторые функции к столбцам данных pandas:

def foo(x):
     return 1 + x

Затем я применяю функцию к столбцу:

df['foo'] = df['a_col'].apply(foo)

Как я могу вернуть столбец сколичество миллисекунд, которое требуется функции foo для завершения?Например:

A time_milisecs
2 0.1
4 0.2
4 0.3
3 0.3
4 0.2

Где A - столбец, содержащий результат суммы.

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете использовать модуль time.Если вы также хотите создать новую серию с помощью вычислений, вы можете вывести последовательность кортежей, затем преобразовать их в кадр данных и присвоить обратно двум сериям.

Вот демонстрация:

import time

df = pd.DataFrame({'A': [2, 4, 4, 3, 4]})

def foo(x):
    tstart = time.time()
    time.sleep(0.25)
    tend = time.time()
    return 1 + x, (tend-tstart) * 10**3

df[['B', 'B_time']] = pd.DataFrame(df['A'].apply(foo).values.tolist())

print(df)

   A  B      B_time
0  2  3  250.014544
1  4  5  250.014305
2  4  5  250.014305
3  3  4  250.014305
4  4  5  250.014067

В Python 3.7 вы можете использовать time.process_time_ns, который измеряет время в наносекундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...