如何从现有数据框的某列的前10个创建新的熊猫数据框

时间:2019-01-22 15:16:52

标签: python pandas dataframe

我正在尝试从一个具有10.000行以上的数据框中删除一个新的数据框,该行中包含保存客户ID的行,这些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

我希望有人能帮助我,在此先感谢!

1 个答案:

答案 0 :(得分:7)

您可以使用value_counts来检查isin

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