Я видел вопрос и ответ , относящиеся к предупреждению пользователя: ключ логической серии будет переиндексирован для соответствия индексу DataFrame
Я пробовал разбивать команды по отдельности, как мог, но все же получил предупреждение пользователя. Что еще я могу сделать, чтобы сделать приведенное ниже более явным, чем оно есть, и исключить предупреждение о последних двух утверждениях (dfa_ = dfa[qux]
и dfb_ = dfb[qux]
)?
import random
import pandas as pd
fields = ['foo', 'bar', 'baz']
def randstring(x=3):
return ''.join([chr(random.randrange(65, 91)) for _ in range(x)])
def randstrlist(x=3):
return [randstring(x) for _ in range(5)]
values = {field: randstrlist() for field in fields}
def getitem():
return {field: random.choice(values[field]) for field in fields}
def getdata(setsize=100):
return [getitem() for _ in range(setsize)]
dfa = getdata()
dfb = getdata()
cols = dfa.columns.tolist()
dfa['qux'] = dfa.groupby(cols).cumcount()
dfb['qux'] = dfb.groupby(cols).cumcount()
cols = cols + ['qux']
dfo = pd.merge(dfa, dfb, on=cols, how='outer').drop('qux', 1)
qux = dfo.isnull().any(axis=1)
dfa_ = dfa[qux]
dfb_ = dfb[qux]