Mam pandy DataFrame z 4 kolumnami i chcę utworzyć nową ramkę DataFrame, która ma tylko trzy kolumny. To pytanie jest podobne do: Wyodrębnianie określonych kolumn z ramki danych, ale dla pand nie R. Poniższy kod nie działa, powoduje błąd iz pewnością nie jest to pandasowy sposób.
import pandas as pd
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator
Jaki jest pandasnicki sposób na zrobienie tego?
źródło
old[['A']].copy()
programie do utworzenia nowej ramki danych wymagane są podwójne nawiasy kwadratowe. Pamiętaj, żeold['A'].copy()
stworzy to tylko Serię.Najłatwiej jest
.
źródło
Wydaje się, że inny prostszy sposób:
gdzie
old.column_name
da ci serię. Utwórz listę wszystkich serii kolumn, które chcesz zachować, i przekaż ją do konstruktora DataFrame. Musimy dokonać transpozycji, aby dostosować kształt.źródło
Ogólna forma funkcjonalna
Specyficzne dla twojego problemu powyżej
źródło
Jeśli chcesz mieć nową ramkę danych, to:
źródło
O ile wiem, nie musisz koniecznie określać osi podczas korzystania z funkcji filtru.
zwraca tę samą ramkę danych co
źródło
kolumny według indeksu:
źródło