如果同一列中的两个值匹配,则从另一列返回同一行中的两个值

时间:2019-06-17 22:37:00

标签: python pandas matching

如何匹配数据框同一列中的值并返回另一列同一行中的两个ID的列表?

我正在尝试编写一个代码,该代码可以匹配包含字符串的同一列中的两个值,并返回另一列但与匹配字符串相同的行中的两个值(整数)。

       cid                    ownerPPNO              
810023112           'ca7e0fc4b7f73b7692c762675e3da960'  
810023112           'c1af5c8bc5247770d53ae9c61e739f8c'  
810033622           '41463f37b4136b8348a8a628e139f619'  
810033622           '3f1869c28e007c8d70ed2bfbc45a56cb'  
810034882           '457508b0c6dcbee9fc9359ac761209f9'  
810037342           'df9dbdd15915be7370aa58facb4b1605'  
810037342           'd402e6c7a87ad2c028aa17811fd244ca'  
810044292           'c6a5f4bfd2d6e95af4a85b65e11f7652'  
810044292           'bf0fdeae633a93e3b33317acb9c45433'  
810044292           'a9b34461d4b1aac1e127ba9af32dac88'  
810059672           '2bc378d9093368104e2a74baf2eadfe1'      

我想比较ownerPPNO并返回ID。 ownerPPNO可能发生两次以上

1 个答案:

答案 0 :(得分:0)

如果您想查看出现两次或更多次的“ ownerPPNO”。试试这个:

df.loc[df.groupby('ownerPPNO')['cid'].transform('count') > 1, ['ownerPPNO']].drop_duplicates()

如果要查看针对重复的“ ownerPPNO”出现的“ cid”。试试这个:

df.loc[df.groupby('ownerPPNO')['cid'].transform('count') > 1, :]