2016-02-25 71 views
0

我有以下代碼:SettingWithCopyWarning Python的改變列數據類型的數據幀

block_table[[compared_attribute]] = block_table[[compared_attribute]].astype(int) 

我想換一個列的數據類型。代碼正在工作,但是我收到了來自Python的警告:SettingWithCopyWarning: 正試圖在來自DataFrame的切片副本上設置一個值。 嘗試使用的.loc [row_indexer,col_indexer] =值,而不是

查看文檔中的告誡:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy 自[K] =值[K2]

我看着這個警告,我讀它可創建數據幀的副本,而不是僅僅將其覆蓋,所以我嘗試沒有運氣以下解決方案......

block_table.loc[[compared_attribute]] = block_table[[compared_attribute]].astype(int) 




block_table.loc[:,compared_attribute] = block_table[[compared_attribute]].astype(int) 
+0

嘗試使用單支架而不是雙支架,讓我們知道你得到什麼。 –

+0

謝謝,我試過了: block_table [comparison_attribute] = block_table [comparison_attribute] .astype(int) 但它仍然給我警告... – user1064285

回答

0

它應該是簡單:

block_table.loc[:,compared_attribute] = block_table[compared_attribute].astype(int) 

這是假定比較屬性是由列另外,切換在loc部分冒號和比較屬性。 如果沒有數據看起來像什麼和比較屬性的樣子,也很難回答。