Не-индексированным DF содержит строки гена, ячейку, содержащую мутацию в этом гене, и типа мутации в этом гене:кронштейн Пандас Dataframe с дубликатами с использованием маскирования
df = pd.DataFrame({'gene': ['one','one','one','two','two','two','three'],
'cell': ['A', 'A', 'C', 'A', 'B', 'C','A'],
'mutation': ['frameshift', 'missense', 'nonsense', '3UTR', '3UTR', '3UTR', '3UTR']})
ДФ:
cell gene mutation
0 A one frameshift
1 A one missense
2 C one nonsense
3 A two 3UTR
4 B two 3UTR
5 C two 3UTR
6 A three 3UTR
Я хотел бы развернуть этот df, чтобы я мог индексировать ген и устанавливать столбцы в ячейки. Проблема в том, что на ячейку может быть несколько записей: в данной клетке могут быть множественные мутации в любом одном гене (клетка А имеет две разные мутации в гене One). Поэтому, когда я бегу:
df.pivot_table(index='gene', columns='cell', values='mutation')
это происходит:
DataError: No numeric types to aggregate
Я хотел бы использовать маскирование для выполнения стержень во время захвата присутствие на минимум один мутации:
A B C
gene
one 1 1 1
two 0 1 0
three 1 1 0