我有一个包含 3 列的 Pandas 数据框:df = pd.DataFrame({'DEST_NAME':['A','A','B','B','C','D','E','E','F'], 'ID':['4624','4625','4624','4625','4625','4625','4624','4625','4625'], 'COUNT':[203,202,100,23,2,200,203,2022,201]}) DEST_NAME ID COUNT0 A 4624 2031 A 4625 2022 B 4624 1003 B 4625 234 C 4625 25 D 4625 2006 E 4624 2037 E 4625 20228 F 4625 2019 D 4625 12510 D 4625 12211 C 4625 3我试图让行,其中一个DEST_NAME仅拥有ID的4625,而不是4624。所以基本上排除列中是否DEST_NAME有4624和4625条目ID。所以结果看起来像: DEST_NAME ID COUNT0 C 4625 21 D 4625 2002 F 4625 2013 D 4625 1254 D 4625 1225 C 4625 3
3 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
您可以提取范围内和范围外的DEST_NAMEs。然后使用pd.Series.isin并结合您的两个条件:
ids_inc = df.loc[df['ID'] == '4625', 'DEST_NAME']
ids_exc = df.loc[df['ID'] == '4624', 'DEST_NAME']
res = df[df['DEST_NAME'].isin(ids_inc) & ~df['DEST_NAME'].isin(ids_exc)]
print(res)
COUNT DEST_NAME ID
4 2 C 4625
5 200 D 4625
8 201 F 4625
添加回答
举报
0/150
提交
取消