удаление повторяющихся записей между разными индексами в pandas.Series - PullRequest
0 голосов
/ 03 октября 2019

Я новичок в пандах и был бы признателен за помощь. Прочитайте документацию, но не можете найти решение ...

Я создал pd.Series (используя groupby и применяя два параметра). Есть несколько тысяч индексов, каждый с набором кодов (param_b). Я пытаюсь удалить коды, которые встречаются в нескольких индексах.

Я пытался drop_duplicates, но ничего не сделал ...

families = file.groupby("param_a")["param_b"].apply(set)
new_families = families.drop_duplicates()

an example, I have these three lines:
A    {5iv5, 5iv7}                                                                         
B    {5hx2, 2fl8, 2fl9, 5iv5, 5iv7, 2fkk}
C    {4lq8}
I want to remove the entries that appear in A and B (5iv5, 5iv7)

Я использовал apply(set) для удалениядубликаты в пределах param_b, и это сработало, но мне нужно также удалить дубликаты в разных индексах.

Спасибо !!

1 Ответ

0 голосов
/ 03 октября 2019

Это делает то, что вы хотите iiuc:

# import pandas as pd
# s = pd.Series({'A': {'5iv5', '5iv7'}, 'B': {'5hx2','2fl8', '2fl9', '5iv5', '5iv7', '2fkk'},'C': {'4lq8'}})

s2 = pd.Series()

for i in s.index:
    s2[i] = s[i].difference(set.union(*s[s.index!=i].values))

# A                          {}
# B    {5hx2, 2fl8, 2fl9, 2fkk}                  
# C                      {4lq8}                  

Я не уверен, однако, если нет более эффективного решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...