错误:标签[0]不在[索引]

时间:2019-12-13 12:37:53

标签: python pandas

晕, 我是使用python的新手

首先,我想规范我的代码。当我规范化“ datalatih”时没有问题,但是当我尝试规范化“ datauji”时发生意外。我已经做了一个不同的变量来标准化它们。

这是我的数据:

df = pd.read_csv("datalatihnodummy.csv", sep=';')
  
    

enter image description here

  

我的datalatih [:6]和datauji [6:]

这是我的成功代码:

minperfeature = []
maxperfeature = []
for i in range(len(data.columns)):
    minperfeature.append(min(data[data.columns[i]]))
    maxperfeature.append(max(data[data.columns[i]]))
print(minperfeature)
print(maxperfeature)

datanormalisasi = datalatih

for i in range(len(datalatih.index)):
    for j in range(len(datalatih.columns)):
        datanormalisasi.loc[i, datalatih.columns[j]] =  (datanormalisasi.loc[i, datalatih.columns[j]] - minperfeature[j]) / (maxperfeature[j] - minperfeature[j])
datanormalisasi
  
    

[12、17、12、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0]

         

[48,135,623,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

         

0     0.638889     0.652542     0.409165     0.0     1.0     0.0     1.0     1.0     1.0     0.0     1.0     1.0     0.0     0.0     0.0     1.0     1.0     0.0     0.0     0.0     1个     0.000000     0.305085     0.409165     1.0     1.0     0.0     1.0     1.0     1.0     0.0     1.0     0.0     0.0     0.0     1.0     0.0     1.0     1.0     1.0     1.0     2     0.527778     0.500000     0.274959     1.0     1.0     1.0     0.0     1.0     0.0     0.0     1.0     0.0     1.0     0.0     0.0     1.0     1.0     0.0     1.0     0.0     3     0.666667     0.042373     0.016367     0.0     1.0     0.0     1.0     1.0     1.0     0.0     0.0     1.0     0.0     0.0     1.0     1.0     1.0     1.0     0.0     1.0     4     0.277778     0.000000     0.000000     0.0     1.0     1.0     1.0     1.0     0.0     0.0     1.0     0.0     1.0     1.0     0.0     0.0     1.0     0.0     1.0     1.0     5     1.000000     0.025424     0.018003     1.0     0.0     0.0     1.0     0.0     0.0     1.0     1.0     0.0     1.0     0.0     1.0     1.0     0.0     0.0     0.0     0.0

  

这是我的错误代码:

datanormalisasiUji = datauji
for i in range(len(datauji.index)):
    for j in range(len(datauji.columns)):
        datanormalisasiUji.loc[i, datauji.columns[j]] =  (datanormalisasiUji.loc[i, datauji.columns[j]] - minperfeature[j]) / (maxperfeature[j] - minperfeature[j])
datanormalisasiUji

结果是

  
    

'标签[0]不在[index]'

  

Idk我的代码中哪里显示错误,我已经使用不同的变量解决了我的问题,但仍然不能

任何人都知道如何解决吗?谢谢^^

1 个答案:

答案 0 :(得分:1)

假设您要标准化列:[u'Umur', u'ALT/SGOT', u'AST/SGPT', u'Anoreksia', u'Mual'] 因为它们包含数值。

对于最小-最大归一化,请使用以下命令:

df = pd.read_csv("datalatihnodummy.csv", sep=';')

df_new = df.iloc[:,1:6]
df_new.head(3)


   Umur  ALT/SGOT  AST/SGPT  Anoreksia  Mual
0    35        94       262          0     1
1    12        53       262          1     1
2    31        76       180          1     1


results = df_new - df_new.min() / (df_new.max() - df_new.min())
results

        Umur    ALT/SGOT   AST/SGPT  Anoreksia  Mual
0  34.666667   93.855932  261.98036        0.0   1.0
1  11.666667   52.855932  261.98036        1.0   1.0
2  30.666667   75.855932  179.98036        1.0   1.0
3  35.666667   21.855932   21.98036        0.0   1.0
4  21.666667   16.855932   11.98036        0.0   1.0
5  47.666667   19.855932   22.98036        1.0   0.0
6  17.666667  134.855932  622.98036        1.0   1.0
7  41.666667   67.855932   11.98036        0.0   0.0

说明:Pandas很聪明,可以通过键入:df_new.min()来估计所有列的最小值。

df_new.min()

Umur         12
ALT/SGOT     17
AST/SGPT     12
Anoreksia     0
Mual          0
dtype: int64`