我正试图从一个超过 10.000 行的数据帧中提取一个新的数据帧,该数据帧包含包含客户 ID 的行,这些行位于现有数据帧的前 3 个最常见的行中。
所以当我现有的数据框看起来像这样时:
Customer-ID Name Order-ID Year
0 1 John 00001 2014
1 2 Doe 00002 2014
2 3 Erik 00003 2015
3 4 Paul 00004 2015
4 5 Karin 00005 2016
5 1 John 00006 2016
6 1 John 00007 2016
7 2 Doe 00008 2016
8 3 Erik 00009 2017
9 1 John 00010 2018
10 2 Doe 00011 2018
我希望我的新数据框看起来像这样(因为客户 ID 1 出现了 4 次,ID 2 出现了 3 次,ID 3 出现了 2 次,这是最常见的前 3 次):
Customer-ID Name Order-ID Year
0 1 John 00001 2014
1 2 Doe 00002 2014
2 3 Erik 00003 2015
3 1 John 00006 2016
4 1 John 00007 2016
5 2 Doe 00008 2016
6 3 Erik 00009 2017
7 1 John 00010 2018
8 2 Doe 00011 2018
我希望有人能帮助我,在此先感谢!
请您参考如下方法:
你可以用isin检查value_counts
yourdf=df[df['Customer-ID'].isin(df['Customer-ID'].value_counts().head(3).index)]
yourdf
Out[67]:
Customer-ID Name Order-ID Year
0 1 John 1 2014
1 2 Doe 2 2014
2 3 Erik 3 2015
5 1 John 6 2016
6 1 John 7 2016
7 2 Doe 8 2016
8 3 Erik 9 2017
9 1 John 10 2018
10 2 Doe 11 2018
