2014-10-11 35 views
6

Utworzyłem ramkę danych pandy, a następnie przekonwertowałem ją na tabelę przestawną.Dodaj kolumnę obliczeniową do tabeli przestawnej pandy

Moja tabela przestawna wygląda następująco:

Operators TotalCB  Qd(cb) Autopass(cb) 
Aircel India 55  11  44 
Airtel Ghana 20  17  3 
Airtel India 41   9  9 
Airtel Kenya 9   4  5 
Airtel Nigeria 24  17  7 
AT&T USA  18  10  8 

Zastanawiałem się, jak dodać obliczone kolumn tak, że dostanę mój stół obrotowy z AutoPass% (Autopass(cb)/TotalCB*100) tak jak jesteśmy w stanie utworzyć je w programie Excel przy użyciu obliczona opcja pola.

Chcę moje wyjście stół obrotowy być coś jak poniżej:

Operators TotalCB  Qd(cb) Autopass(cb) Qd(cb)% Autopass(cb)% 
Aircel India 55   11 44    20%  80% 
Airtel Ghana 20   17  3    85%  15% 
Airtel India 41   29  9    71%  22% 
Airtel Kenya  9   4  5    44%  56% 
AT&T USA  18   10  8    56%  44% 

Jak mogę zdefiniować funkcję, która oblicza kolumny procentach i jak zastosować tę funkcję do moich dwóch kolumnach mianowicie Qd(cb) i Autopass(cb) dać me dodatkowe kolumny obliczone

+0

Czy próbowałeś napisać jakikolwiek kod? –

+4

Najwyraźniej napisano jakiś kod @ Tony: Nie dostajesz się do etapu tworzenia tabeli przestawnej w pandach bez jakiegoś kodu. Twój komentarz nie był pomocny. –

+0

Dzięki Oxinabox. @Tony Tak Zaimportowałem dane za pomocą read_csv do ramki danych i użyłem funkcji pivot_table do utworzenia tabeli przestawnej. – Pynewbie

Odpowiedz

2

To powinno wystarczyć zakładając data jest Twój obracany dataframe:

data['Autopass(cb)%'] = data['Autopass(cb)']/data['TotalCB'] * 100 
data['Qd(cb)%'] = data['Qd(cb)']/data['TotalCB'] * 100 

Dodawanie nowej kolumny do ramki danych jest tak proste jak df['colname'] = new_series. Tutaj przypisujemy go do żądanej funkcji, kiedy robimy to jako operację wektorową, tworzy nową serię.

+0

Dzięki Korem to działało :). Doceń swój czas i wysiłek – Pynewbie

Powiązane problemy