Szukałem eleganckiego sposobu na zmianę określonej nazwy kolumny w DataFrame
.
odtwórz dane ...
import pandas as pd
d = {
'one': [1, 2, 3, 4, 5],
'two': [9, 8, 7, 6, 5],
'three': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(d)
Najbardziej eleganckie rozwiązanie, jakie do tej pory znalazłem ...
names = df.columns.tolist()
names[names.index('two')] = 'new_name'
df.columns = names
Miałem nadzieję na prosty liniowiec ... ta próba się nie udała ...
df.columns[df.columns.tolist().index('one')] = 'another_name'
Wszelkie wskazówki otrzymane z wdzięcznością.
Ponieważ
inplace
argument jest dostępny, nie trzeba kopiować i przypisywać oryginalnej ramki danych z powrotem do siebie, ale wykonaj następujące czynności:źródło
Co powiesz na?
źródło
df['new_name']
(i innych rzeczy pand) po zmianie zmiennych, jak opisano powyżej. Twój komentarz mógł być ważny, kiedy został pierwotnie opublikowany.rename
metod jest lepszym rozwiązaniem.Panda 0.21 ma teraz parametr osi
Metoda zmiany nazwy uzyskała parametr osi, który pasuje do większości pozostałych funkcji API pand.
Oprócz tego:
Możesz to zrobić:
lub
źródło
pd.__version__
, aby sprawdzić wersjęJeśli wiesz, która to kolumna # (pierwsza / druga / n-ta), to rozwiązanie opublikowane na podobne pytanie działa niezależnie od tego, czy jest nazwane czy nienazwane, i w jednym wierszu: https://stackoverflow.com/a/26336314/ 4355695
źródło
Tutaj zmiana nazwy kolumn jest prosta, która będzie działać dla obu
Default(0,1,2,etc;)
i istniejących kolumn, ale nie będzie zbyt użyteczna dla większych zestawów danych (posiadających wiele kolumn).W przypadku większego zestawu danych możemy pokroić potrzebne kolumny i zastosować poniższy kod:
źródło
Poniższy krótki kod może pomóc:
Usuń spacje z kolumn.
źródło
AttributeError: 'int' object has no attribute 'replace'
mógłbyś to rozwinąć.wersja pandy 0.23.4
Dla przypomnienia:
źródło
Inną opcją byłoby po prostu skopiowanie i upuszczenie kolumny:
Następnie otrzymasz wynik:
źródło