Próbuję użyć grupy, aby utworzyć nową ramkę danych, ale potrzebuję, aby indeks multi był spójny. Niezależnie od tego, czy istnieje kategoria sub, chciałbym to być tworzone jak następuje:Pandy Groupby Spójne poziomy, nawet jeśli puste
import pandas as pd
df = pd.DataFrame(
{'Cat 1':['A','A','A','B','B','B','B','C','C','C','C','C','D'],
'Cat 2':['A','B','A','B','B','B','A','B','B','B','B','B','A'],
'Num': [1,1,1,1,1,1,1,1,1,1,1,1,1]})
print df.groupby(['Cat 1','Cat 2']).sum()
Przy wyjściu, który wygląda tak:
Num
Cat 1 Cat 2
A A 2
B 1
B A 1
B 3
C B 5
D A 1
Ale chciałbym to wyglądać
Num
Cat 1 Cat 2
A A 2
B 1
B A 1
B 3
C A Nan
B 5
D A 1
B Nan
czytałem różne dane, które następnie dodaje kolumnę w tym formacie, tak otrzymaną macierz będzie wyglądać następująco:
Num Num_added_later
Cat 1 Cat 2
A A 2 12
B 1 5
B A 1 5
B 3 3
C A Nan 5
B 5 5
D A 1 1
B Nan 3
Nie sądzę, jest to więc hacky. Intencja nie jest również przekazywana, ale mimo to jest całkiem sprytna. –
Podoba mi się ten hack! – MaxU