2012-12-26 20 views
9

Podstawowe pytanie dotyczące pandasowej ramki danych. Mam ramkę danych 1x1 z punktem danych i nie ma nagłówków kolumn (obecnie). df[0,0] nie działa, ponieważ myślę, że oczekuje nazwy kolumny. Ponadto df.0 nie działa ani df[0,'']. df.ix[0,0] działa.Brak nazw kolumn w pythonie pandy

Ogólnie, czy wymagane jest podanie nazwy kolumny? Czy najlepiej jest używać nazw kolumn z ramkami danych pandy? Jeśli moje zapytanie sql nie ma nagłówków kolumn, czy najlepiej jest je dodać w tym momencie?

Dzięki za pomoc.

Odpowiedz

7

Nie, nie musisz podawać nazw kolumn, ani nie potrzebujesz dostępu do żadnego elementu.

In [12]: df = pd.DataFrame([0]) 

In [13]: df.ix[0,0] 
Out[13]: 0 

In [14]: df[0][0] 
Out[14]: 0 

W rzeczywistości, można pomyśleć kolumny już o nazwę - jest to spojrzenie na to, co się dzieje, kiedy podać nazwę

In [15]: df #Before naming the column 
Out[15]: 
    0 
0 0 

In [16]: df.columns = ['ColA'] 
In [17]: df #Renamed 
Out[17]: 
    ColA 
0  0 

In [18]: df['ColA'][0] #Now you can access the column using the new name 
Out[18]: 0 

In [19]: df[0][0]   #... but trying the old name will not work 
--------------------------------------------------------------------------- 
KeyError         Traceback (most recent call last) 

KeyError: 'no item named 0' 

można nadal korzystać DataFrame.ix tylko całkowitą 0. jak wcześniej:

In [20]: df.ix[0,0] 
Out[20]: 0 
+0

Dzięki za pomoc. Być może jeszcze jedna rzecz, o której powinienem wspomnieć. Podczas pisania: W [1]: df Out [1]: Nie ma "0" wymienionych podobnie jak w przykładzie z In [15]. Czy to jest problem, na który napotykam? Dzięki. – user1911092

+0

Być może możesz pokazać mi używając pastebin lub edytując swoje pytanie? – Aman

+0

Przykro mi - nie wiem, wklej bin. Ale jeśli spojrzysz na swój przykład powyżej, w [15] masz dwa rzędy zer. pierwszy wiersz ma jedno zero, a drugi ma dwa zera. W moim przykładzie pierwszy wiersz jest pusty, a drugi wiersz ma dwa zera. – user1911092

Powiązane problemy