我需要循环通过pandas DataFrame,但首先我必须对其进行过滤;old_id";s附加到每个新ID。
我写了这个代码,运行得很好,但它的伸缩性不太好。
d = dict()
for new_id in (new_id_list):
d[new_id] = df[df['new_id_col'] == new_id]['old_id'].nunique()
如何提高效率?
看起来您正在寻找groupby
+nunique
。这获取唯一的";old_id";s每";new_id_col":
out = df.groupby('new_id_col')['old_id'].nunique().to_dict()