Я пытаюсь построить кадр данных из следующих списков:
A = ['item 1', 'item 2', 'item 3', 'item 4', 'item 5']
B = ['item 2','item 4']
C = ['item 1', 'item 5']
Я хочу, чтобы имя списка (или некоторое представление этого имени) соответствовало значению, как таковому:
dA = [{'item':x, 'A':True} for x in A]
dB = [{'item':x, 'B':True} for x in B]
dC = [{'item':x, 'C':True} for x in C]
В настоящее время я строю свой фрейм данных, используя некоторые уродливые методы. Я хотел бы найти решение для лучших практик здесь:
dfA = pd.DataFrame.from_records(dA)
dfB = pd.DataFrame.from_records(dB)
dfC = pd.DataFrame.from_records(dC)
df = pd.merge(dfA,dfB, 'outer').merge(dfC,'outer').fillna(False)
# Result:
item A B C
0 item 1 True False True
1 item 2 True True False
2 item 3 True False False
3 item 4 True True False
4 item 5 True False True