2016-06-28 76 views
1

我有以下代碼:我不能分配一個值單元格蟒蛇熊貓

for i in range(len(list_sort)): 
    list_sort[i] = list_sort[i].reset_index() 
    classification = 1 
    list_sort[i].set_value(0, list_column[k], classification) 
    for j in range(len(df))[1::]: 
     if(list_sort[i].ix[j][1] == list_sort[i].ix[j-1][1]): 
      list_sort[i].ix[j][2] = classification 
     else: 
      classification += 1 
      list_sort[i].ix[j][2] = classification 
    k += 2 
    list_sort[i] = list_sort[i].set_index('index') 

我有一個包含幾個數據幀一list_sort。每個人都有一列,我需要將當前行與前一行進行比較。

這是結果的一部分時,我比較一列中的所有值都是int類型:

 ACESSO_PORTAL CLASSIFICACAO_ACESSO_PORTAL 
index  
19  973693     1 
8  954719     2 
27  918459     3 
1  908029     4 
4  865346     5 
31  754591     6 
35  743908     7 
23  733344     8 
14  702816     9 

這是結果的一部分時,我比較一列中的所有值都是float類型:

TOTAL_PRODUTOS CLASSIFICACAO_TOTAL_PRODUTOS 
index  
19 118798.57    1 
1  92415.46     0 
2  82987.19     0 
31 82228.57     0 
23 80109.00     0 
0  72606.59     0 
34 69385.11     0 
17 63794.19     0 
33 61328.62     0 

每個DataFrame都有索引和兩列。

正如你所看到的,它不適用於浮動。

我不知道爲什麼發生這種情況。我嘗試使用set_value,但沒有奏效。

回答

0

您正在嘗試設置副本值:

C:\ Anaconda2 \ LIB \站點包\ ipykernel__main __潘岳:10:SettingWithCopyWarning: 值正試圖在一組從數據幀

切片的副本,請注意事項文檔中:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

在這些線路上:

​​

我不認爲它與整數工作。我無法確定,因爲你沒有提供樣本數據。

嘗試使用iloc代替:

 list_sort[i].iloc[j, 2] = classification 
     #  Here^
    else: 
     classification += 1 
     list_sort[i].iloc[j, 2] = classification 
     # And here^
+0

感謝。完美工作。 –