2012-12-26 14 views
9

Grund Frage auf einem Pandas Datenrahmen. Ich habe einen 1x1 Datenrahmen mit einem Datenpunkt und es gibt (derzeit) keine Spaltenüberschriften. df[0,0] funktioniert nicht, weil ich denke, dass es einen Spaltennamen erwartet. Darüber hinaus funktioniert df.0 nicht noch df[0,'']. df.ix[0,0] funktioniert.Keine Spaltennamen in Pandas Python

Im Allgemeinen bin ich verpflichtet, einen Spaltennamen zu haben? Ist es eine bewährte Methode, Spaltennamen mit Pandas-Datenrahmen zu verwenden? Wenn meine SQL-Abfrage keine Spaltenüberschriften hat, ist es das Beste, sie an dieser Stelle hinzuzufügen?

Danke für die Hilfe.

Antwort

7

Nein, Sie müssen keine Spaltennamen zuweisen, noch benötigen Sie sie für den Zugriff auf ein Element.

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

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

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

In der Tat können Sie der Spalte denken schon einen Namen hat - es ist die ganze Zahl 0. Betrachten Sie, was passiert, wenn Sie einen

Namen angeben
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' 

Sie noch DataFrame.ix nur verwenden können, wie zuvor, aber:

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

Danke für Ihre Hilfe. Vielleicht sollte ich noch etwas erwähnen. Beim Schreiben: In [1]: df Aus [1]: Es gibt keine "0", die Ihrem Beispiel mit In [15] ähnlich ist. Ist das das Thema, dem ich begegne? Vielen Dank. – user1911092

+0

Vielleicht können Sie mir Pastebin zeigen oder Ihre Frage bearbeiten? – Aman

+0

Es tut mir leid - weiß nicht, Paste bin. Aber wenn Sie sich Ihr Beispiel oben für In [15] ansehen, haben Sie zwei Reihen von Nullen. die erste Zeile hat eine Null und die zweite zwei Nullen. In meinem Beispiel ist die erste Zeile leer und die zweite Zeile hat zwei Nullen. – user1911092

Verwandte Themen