2016-06-21 8 views
5

Jakiś joker wykonał loterię bazy danych/apletu do śledzenia problemów technicznych w naszej firmie. Żart jest taki, że kluczowa informacja została nazwana specjalnym znakiem ... znakiem liczbowym (hash, znak funta, \ u0023).Nazwa kolumny danych pandy: usuń specjalny znak ładujący

skrócie próbki:

KA#   Issue Date  Current Position 
27144  1/9/2014  Accounting 
27194  12/20/2012  Engineering 
32474  4/21/2008  Engineering 
32623-HOLD 4/25/2016  Engineering 
32745  11/13/2012  SEPE 
32812  10/30/2013  Engineering 
32817  12/7/2012  Purchasing 
32839  1/8/2013  SEPE 

dane wyjściowe w tej tabeli (4K rzędy 15 kolumn) w pliku CSV i procesu w python3 jako dataframe PANDAS.

Generuję różne wyjścia. Jeśli używam coś takiego:

df.iloc[:,[0,3,1,8,9,10]] 

uzyskać odpowiednią wydajność i kolumna klucz pokazuje się jako "KA#". (Kiedy mówię "kluczowa kolumna", mam na myśli "najważniejszy" ... NIE "indeks".) Zachowuję indeks seryjny)

Niestety, ludzie czasami nieporządkują się kolejnością kolumn w Lotusie między moim eksportem do csv, więc Nie mogę zagwarantować, że "KA#" będzie jakimkolwiek konkretnym numerem kolumny. Chciałbym używać nazwy kolumn:

df.loc[:,["KA#","Issue Date","Current Position"]] 

Ale kolumna "KA#" jest wypełniona Nan.

Dzięki za pomoc, jaką możesz zaoferować.

Wreszcie, gdy próbuję zmienić nazwę "KA#" po prostu "KA":

df['KA#'].name = 'KA' 

rzuca KeyError i

df = df.rename(columns={"KA#": "ka"}) 

jest całkowicie ignorowany. Kolumna pojawia się jako "KA#".

Czy ktoś może wymyślić sposób na pozbycie się lub obsłużenie tego symbolu? W tym momencie zadowalam się nawet regexem.

Dzięki za pomoc, jaką możesz zaoferować.

Odpowiedz

5

użycie str.replace:
df.columns=df.columns.str.replace('#','')

Można to sprawdzić w documentation.

+1

I w szczególności przypisz ten wynik z powrotem do "df.columns". – chrisaycock

+0

tak, możesz to zobaczyć w dokumentacji. – shivsn

+0

Zajęło mi to mój problem, ponieważ miałem tylko jedną kolumnę z niewłaściwą postacią i chciałem, żeby zniknęła. Dlatego "odpowiedział". i "dziękuję" do shivsn. Jeśli chciałbym kierować na konkretną kolumnę, to byłaby to raczej niezgrabna metodologia. Myślę, że będę się tym martwił, kiedy do tego dojdę. –

Powiązane problemy