【发布时间】:2022-01-26 00:56:54
【问题描述】:
我正在尝试构建一种可扩展的方法来计算修改某个文件的唯一成员的数量,直到并包括最新的 modified_date。 unique_member_until_now 列包含每个文件的预期结果。
import pandas as pd
from pandas import Timestamp
# Example Dataset
df = pd.DataFrame({'File': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C'],
'Member': ['X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'Z', 'Y', 'X', 'Y', 'X'],
'modified_date': [Timestamp('2021-11-25 00:00:00'),
Timestamp('2021-11-28 00:00:00'),
Timestamp('2021-12-14 00:00:00'),
Timestamp('2021-10-17 00:00:00'),
Timestamp('2021-11-01 00:00:00'),
Timestamp('2021-11-04 00:00:00'),
Timestamp('2021-11-16 00:00:00'),
Timestamp('2021-12-16 00:00:00'),
Timestamp('2021-12-29 00:00:00'),
Timestamp('2021-10-30 00:00:00'),
Timestamp('2021-11-23 00:00:00'),
Timestamp('2021-12-17 00:00:00')],
'unique_member_until_now': [1, 1, 2, 1, 2, 2, 2, 3, 3, 1, 2, 2]})
df.groupby("File")["Member"].transform('nunique') 当然没有给出预期的结果
当前的方法是遍历每个组和组中的每条记录,但我确信在处理数百万行时,这种方法效率极低且速度很慢。
【问题讨论】:
标签: python pandas pandas-groupby rolling-computation