根据Count> 1在熊猫中创建df

时间:2019-12-02 23:21:08

标签: python-3.x pandas

我正在尝试根据值是否在列中多次出现来创建新的数据框。

Parcel      Permit     Town
123Q        ABC        BLD
1000        A45        BLD
9999        G5R        BLD
123Q        LK9        BLD
123Q        Q2W        BLD

所以我的目标是创建一个数据包,以提取包裹编号123Q。

3 个答案:

答案 0 :(得分:5)

Use groupby.transform来执行boolean indexing

df[df.groupby('Parcel').Parcel.transform('size')>1]

GroupBy.filter

df.groupby('Parcel').filter(lambda x: x.Parcel.size > 1)

输出

  Parcel Permit Town
0   123Q    ABC  BLD
3   123Q    LK9  BLD
4   123Q    Q2W  BLD

答案 1 :(得分:1)

这是DataFrame.duplicated,带有参数keep=False,用于保留所有重复的行。

df[df.duplicated('Parcel',keep=False)]

  Parcel Permit Town
0   123Q    ABC  BLD
3   123Q    LK9  BLD
4   123Q    Q2W  BLD

答案 2 :(得分:0)

另一种方法是使用value_countsmap和切片

df[df.Parcel.map(df.Parcel.value_counts() > 1)]

Out[1854]:
  Parcel Permit Town
0  123Q   ABC    BLD
3  123Q   LK9    BLD
4  123Q   Q2W    BLD