2017-05-11 25 views
0

我有以下的數據幀,它不會承認與以下錯誤消息列:AttributeError: 'DataFrame' object has no attribute 'B_N'AttributeError的 - 但據幀具有屬性

DF1

Type B_N 
A  AT74 
A  BQT1 
C  0 

的代碼行的錯誤是:

df1.B_N[df1['B_N'] == '0'] = np.nan 

基本上我想要列B_N中的任何值爲0是一個NaN值。

任何幫助表示讚賞!

謝謝。

+0

我可以通過導入數據集後使用df.rename來解決此問題。感謝您的幫助。 – sschade

回答

0

你認爲最關鍵的是 'B_N' 可能不是 'B_N'。它周圍可能有空格。

你可以做一個df.columns並檢查它是否完全'B_N'?

+0

我做了df.columns並沒有看到任何空格。 – sschade

+0

我也改變名字似乎並不重要。我嘗試了不同的名稱,但仍然收到相同的錯誤消息。 – sschade

+0

你可以在這裏粘貼df.columns的輸出嗎? – Allen

0

我想你想要的東西,如:

df1['B_N']=df1['B_N'].replace(0, np.nan) 

例子:

>>> df1=pd.DataFrame({'B_N':['wrd','wrfe', 0], 'Type':['A', 'A', 'C']}) 
>>> df1 
    B_N Type 
0 wrd A 
1 wrfe A 
2  0 C 
>>> df1['B_N']=df1['B_N'].replace(0, np.nan) 
>>> df1 
    B_N Type 
0 wrd A 
1 wrfe A 
2 NaN C 
+0

我試過這樣做,但現在我有一個KeyError:'B_N' – sschade

+0

你可以編輯你的文章張貼你的代碼在哪裏你創建'df1'? – Dadep

+0

我使用這個作爲例子,因爲實際的代碼。實際的代碼很長。如果這有所作爲,我會將列的值從'B N'更改爲'B_N'。除此之外,它是兩個數據幀事先與pd.concat合併來創建df1。 BN dtype是一個對象 – sschade

相關問題