需要根据出现频率替换 Pandas 中的值

我的挑战是根据出现频率为 VENDOR ID 提供一个通用 ID。


BaseData.groupby(["VENDOR_ID"]).size().sort_values(ascending=False,na_position='last')

返回以下内容。


VENDOR_ID

1111    5000

1112    4500

1113    4000

1114    3500

1115    3000

1116     880

1117     500

1118     300

1119     200

1120      20

左列是供应商 ID,右列是出现频率。我想保留前 5 个最常出现的供应商 ID 的供应商 ID。对于所有剩余的供应商 ID,我想将现有供应商 ID 替换为通用供应商 ID 9999。


万千封印
浏览 103回答 3
3回答

米琪卡哇伊

.map5家大厂商自己,这将剩下的映射NaN,然后.fillna与通用的价值:df['VENDOR_ID'] = df.VENDOR_ID.map(                      dict((i, i) for i in df.groupby('VENDOR_ID').size().nlargest(5).index)                  ).fillna('9999')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python