我有一个数据,充满了不同地区分配的引线,其总长度为600 K行。我想返回一个数据,从每个地区400记录,但无法找到这样做的方法。
下面是我到目前为止对一个样本数据集的了解:
原始数据集:
Account Name Territory group
366663 THOMPSON RAY E South Carolina175 g7
529113 SOUTHERN TRADITION REALTY South Carolina175 g7
143584 DELANCO INSPECTION CENTER New Jersey221 g6
17636 ONE VISION ELECTRIC New Jersey221 g6
561095 SIMPLEFLOORS NORTH HOLLYWOOD Texas73 g11
306094 TEXAS REALTY CAFE Texas73 g11 假设我想返回最后数据集中的每个区域中的一个:期望的输出:
Account Name Territory group
366663 THOMPSON RAY E South Carolina175 g7
143584 DELANCO INSPECTION CENTER New Jersey221 g6
561095 SIMPLEFLOORS NORTH HOLLYWOOD Texas73 g11我不在乎在最终结果中返回来自每个区域的哪些记录,只是每个区域的记录数量相同(实际上,我希望每个区域的记录超过1条,这样子集上的drop_duplicates就不能工作了)。
我试过使用groupby,但是除了在每个地区创建所有记录的组之外,我想不出如何做任何事情。任何帮助都很感激。谢谢。
发布于 2022-03-30 18:31:12
使用groupby和sample
>>> df.groupby("Territory").sample(1)
Account Name Territory group
143584 DELANCO INSPECTION CENTER New Jersey221 g6
529113 SOUTHERN TRADITION REALTY South Carolina175 g7
561095 SIMPLEFLOORS NORTH HOLLYWOOD Texas73 g11发布于 2022-03-30 18:57:16
您也可以使用cumcount (计数器从0开始)
# N = 1 (or N = 400)
>>> df[df.groupby('Territory').cumcount() < N]
Account Name Territory group
366663 THOMPSON RAY E South Carolina175 g7
143584 DELANCO INSPECTION CENTER New Jersey221 g6
561095 SIMPLEFLOORS NORTH HOLLYWOOD Texas73 g11https://stackoverflow.com/questions/71682302
复制相似问题