2016-08-02 7 views
1

私はパンダのデータフレームに列名を割り当てますが、列名は新しい列を作成しています。この問題を回避するにはどうすればよいですか?なぜカラム名が実際のカラムを超えておらず、データフレームに新しいカラムを作成するのですか?

は何のデータフレーム、今のようになります。

         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 

私がしたいどのようなデータフレームの外観のように:これまで

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 

コード:

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-

私はappraisal_abstract_を試してみるsubdv.shape..theデータフレームは(4000,1)として形状を示していますが、データには2つの列があります。

私が使っているデータのこの例:

A0001A ASHTON         
A0002A J. AYERS 

は、事前にありがとうございます。

答えて

2

をそれらの名前を変更するために、このメソッドを使用しますが、列名

appraisal_abstract_subdv.columns.values 

を取得するために使用することができパンダでrename関数は、それはあなたのようにそこに見えていますデータファイルは、別の区切り文字(pd.read_table()のデフォルトの区切りではないTABなど)を持っているので、使用しよう:sep='\s+'またはdelim_whitespace=Trueパラメータ。

データファイルを読んだ後、あなたのコラムをチェックするためには、次の手順を実行します

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

sep = \ s + 'は機能し、データを再設定する必要はありません! – RustyShackleford

1

それらの列名が適切に

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

しかし、私はそれの名前を変更することはできませんので、データには列がありません。私はちょうどそれに名前を付ける。 また、df.shapeを試してみると、2つあるところに1つの列しか表示されません。それがなぜそれを引き起こしているのか分かりません。予想される軸が1つの要素を持って、私はなぜ知らないが、ファイルが1列に読み取られていると私は名前を変更するために行くとき、それは私にエラーを与える「長さの不一致名 – RustyShackleford

+0

メインの質問にappraisal_abstract_subdv.columns.values'それを追加します新しい値は2を持っている」 その2つの列の代わりに、.txtファイルから読み込む1. –

+0

を取得するには、 ' – RustyShackleford

関連する問題