2017-04-21 22 views
3

に含まれていないラベル、私は、フォームのデータを持っている:とValueError:軸

IMP_START_TIME IMP_CLR_TIME SERV_OR_IOR_ID 0 2017-02-28 23:59:32.8730 2017-03-01 00:11:28.7550 -1447310116 1 2017-03-01 00:00:09.1820 2017-03-01 00:01:06.9120 1673545041 ... ... ... ... 266863 2017-03-01 04:05:28.2200 nan 2108335332 266866 2017-03-01 13:10:01.1600 nan -724153592

私はIMP_CLR_TIME欄に「ナン」を持っているすべての行を削除します。このために私は次のコードを書いた:

df = pd.read_csv(r'C:\Users\SIA_1_3_2017.csv',low_memory=False) 
SID_ST_CT_col = df[['IMP_START_TIME','IMP_CLR_TIME','SERV_OR_IOR_ID']] 

SID_ST_CT_str = SID_ST_CT_col.astype(str)     


SID_ST_CT_str.drop(SID_ST_CT_str.loc[SID_ST_CT_str['IMP_CLR_TIME']=='nan']) 

しかし、私は次のエラー取得しています:私は、次のコマンドを使用してIMP_CLR_TIME欄に「ナン」を持つ行を印刷するとき

ValueError: labels ['IMP_START_TIME' 'IMP_CLR_TIME' 'SERV_OR_IOR_ID'] not contained in axis 

を、それしかし、私は同じ行を削除しようとすると、なぜ私はそのようなエラーが発生しているのか理解できません。

+0

カラムに空白があるかどうかを確認するには、 'df.columns.tolist()'の出力を見てください。 – EdChum

答えて

3

あなたがdropnaを必要とするようだ:

print (df.columns.tolist()) 
['IMP_START_TIME', 'IMP_CLR_TIME', 'SERV_OR_IOR_ID'] 

df = df.dropna(subset=['IMP_CLR_TIME']) 
print (df) 
      IMP_START_TIME    IMP_CLR_TIME SERV_OR_IOR_ID 
0 2017-02-28 23:59:32.8730 2017-03-01 00:11:28.7550  -1447310116 
1 2017-03-01 00:00:09.1820 2017-03-01 00:01:06.9120  1673545041 

の列名に空白を削除: :

  • は、パラメータに列にskipinitialspace=Truestrip
  • read_csvに空白を追加10
    df.columns = df.columns.str.strip() 
    
+0

ありがとう!それは働いた:) – Shreyas