我正在尝试根据值是否在列中多次出现来创建新的数据帧。
Parcel Permit Town
123Q ABC BLD
1000 A45 BLD
9999 G5R BLD
123Q LK9 BLD
123Q Q2W BLD
因此,我的目标是创建一个提取包裹编号 123Q 的数据帧。
Use groupby.transform
性能 aboolean 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
这是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
另一种方法是使用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