我正在尝试根据值是否在列中多次出现来创建新的数据框。
Parcel Permit Town
123Q ABC BLD
1000 A45 BLD
9999 G5R BLD
123Q LK9 BLD
123Q Q2W BLD
所以我的目标是创建一个数据包,以提取包裹编号123Q。
答案 0 :(得分:5)
Use groupby.transform
来执行boolean indexing
:
df[df.groupby('Parcel').Parcel.transform('size')>1]
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_counts
,map
和切片
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