2016-08-02 35 views
1

Ich bin die Zuordnung von Spaltennamen zu einem Datenrahmen in Pandas aber die Spaltennamen erstellen neue Spalten, wie gehe ich um dieses Problem?Warum geht der Spaltenname nicht über die tatsächliche Spalte hinaus und erzeugt neue Spalten im Dataframe?

Was Datenrahmen sieht aus wie jetzt:

         abs_subdv_cd abs_subdv_desc 
0 A0001A ASHTON        ...    NaN 
1 A0002A J. AYERS       ...    NaN 
2 A0003A NEWTON ALLSUP      ...    NaN 
3 A0004A M. AUSTIN       ...    NaN 
4 A0005A RICHARD W. ALLEN     ...    NaN 

Was ich will, Datenrahmen wie folgt aussehen:

abs_subdv_cd abs_subdv_desc 
0 A0001A ASHTON        
1 A0002A J. AYERS        
2 A0003A NEWTON ALLSUP      
3 A0004A M. AUSTIN       
4 A0005A RICHARD W. ALLEN 

Code so weit:

import pandas as pd 

###Declaring path### 
path = ('file_path') 

###Calling file in folder### 
appraisal_abstract_subdv = pd.read_table(path + '/2015-07-28_003820_APPRAISAL_ABSTRACT_SUBDV.txt', 
          encoding = 'iso-8859-1' ,error_bad_lines = False, 
          names = ['abs_subdv_cd','abs_subdv_desc']) 
print(appraisal_abstract_subdv.head()) 

-edit-

Wenn Ich versuche Appraisal_abstract_ subdv.shape..das Datenframe zeigt die Form als (4000,1) wo die Daten zwei Spalten haben.

dieses Beispiel von Daten verwende ich:

A0001A ASHTON         
A0002A J. AYERS 

Vielen Dank im Voraus.

Antwort

2

es sieht umbenennen Ihre Datendatei hat ein anderes Trennzeichen (kein TAB, das ein Standardtrennzeichen für pd.read_table() ist), so versuchen Sie zu verwenden: sep='\s+' oder delim_whitespace=True Parameter.

Um Ihre Spalten zu überprüfen, nachdem Sie die Datendatei kann das Lesen folgend:

print(df.columns.tolist()) 
+0

Die sep = \ s + 'funktionierte, KEINE Daten neu zu konfigurieren! – RustyShackleford

1

Es gibt eine Umbenennungsfunktion in Pandas, die Sie die Spaltennamen verwenden können

appraisal_abstract_subdv.columns.values 

dann bekommen mit diesen Spaltennamen diese Methode verwenden, sie in geeigneter Weise wie

df.rename(columns={'OldColumn1': 'Newcolumn1', 'OldColumn2': 'Newcolumn2'}, inplace=True) 
+0

Aber die Daten haben keine Spalten, so dass ich es nicht umbenennen. Ich möchte es nur benennen. auch wenn ich gehen und versuchen df.shape, es zeigt nur eine Spalte, wo es zwei sind. nicht sicher, warum dies das verursacht. Hinzufügen in Hauptfragen – RustyShackleford

+0

'appraisal_abstract_subdv.columns.values', um die Namen zu bekommen –

+0

Ich weiß nicht warum, aber Datei wird mit einer Spalte gelesen und wenn ich gehe, um es umzubenennen geben Sie mir Fehler" Länge nicht übereinstimmen: erwartete Achse hat 1 Elemente, neue Werte haben zwei " nicht sicher, warum es die Datendatei als zwei Spalten anstelle von 1 lesen. – RustyShackleford