У меня есть следующий pandas DataFrame. Есть два столбца A
и B
, состоящие из списков из нескольких кортежей.
import pandas as pd
dictionary_input = {'A' : [5,6,3,4],
'B' : [[('AA', 4, 11), ('ABC', 28, 99), ('ABC', 23, 86)], [('AA', 2, 10)], [('ABC', 56, 76), ('BB', 15, 183)], [('BB', 15, 183)]],
'C': [[('XYZ', 7, 9), ('XX',24, 33), ('BB', 179, 184)], [('XX',72, 75)], [('ABC',25, 45)], [('BB',91, 187)]]}
df = pd.DataFrame(dictionary_input)
print(df)
, что приводит к:
A B C
0 5 [(AA, 4, 11), (ABC, 28, 99), (ABC, 23, 86)] [(XYZ, 7, 9), (XX, 24, 33), (BB, 179, 184)]
1 6 [(AA, 2, 10)] [(XX, 72, 75)]
2 3 [(ABC, 56, 76), (BB, 15, 183)] [(ABC, 25, 45)]
3 4 [(BB, 15, 183)] [(BB, 91, 187)]
Моя проблема заключается в том, что я хотел бы установить этот DataFrame на основе значений в списках кортежей, то есть на основе одного кортежа.
Если бы я должен был установить подкадр данных на основе B
с кортежем (BB, 15, 183)
, то был бы следующий вывод:
A B C
2 3 [(ABC, 56, 76), (BB, 15, 183)] [(ABC, 25, 45)]
3 4 [(BB, 15, 183)] [(BB, 91, 187)]
Я попытался выполнить sh, используя
df[df.B.isin(('BB', 15, 183))]
Но это неправильно, так как он дает мне пустой DataFrame.
Как создать подмножество на основе значений в списке в pandas DataFrame, если значения являются кортежами?