Hướng dẫn dùng dataframe shift python

IFF DataFrame của bạn đã được sắp xếp theo các phím nhóm bạn có thể sử dụng một đĩa đơn shifttrên toàn bộ DataFrame và wheređể NaNcác hàng tràn vào nhóm tiếp theo. Đối với các DataFrame lớn hơn với nhiều nhóm, điều này có thể nhanh hơn một chút.

df['prev_value'] = df['value'].shift().where(df.object.eq(df.object.shift())) object period value prev_value 0 1 1 24 NaN 1 1 2 67 24.0 2 1 4 89 67.0 3 2 4 5 NaN 4 2 23 23 5.0

Một số thời gian liên quan đến hiệu suất:

import perfplot import pandas as pd import numpy as np perfplot.show( setup=lambda N: pd.DataFrame({'object': np.repeat(range(N), 5), 'value': np.random.randint(1, 1000, 5*N)}), kernels=[ lambda df: df.groupby('object')['value'].shift(), lambda df: df['value'].shift().where(df.object.eq(df.object.shift())), ], labels=["GroupBy", "Where"], n_range=[2 ** k for k in range(1, 22)], equality_check=lambda x,y: np.allclose(x, y, equal_nan=True), xlabel="# of Groups" )

Hướng dẫn dùng dataframe shift python

6 hữu ích 0 bình luận chia sẻ