如您在我的程序中所见:我试图给我的数据添加噪音
from tkinter import messagebox, filedialog
import pandas as pd
from sklearn.svm import SVC
RSB_db = 10
Noised_Data = []
"""INPUT DATA
"""
Path_DataBase = filedialog.askopenfilename()
All_Data = pd.read_csv(Path_DataBase, header=None)
Shape = All_Data.shape
n_line = Shape[0]
n_column = Shape[1]
Data = All_Data.iloc[0:, :Shape[1] - 2] # Extract Data
"""ADD Noise
"""
if RSB_db != 0:
for i_line in range(n_line):
print(i_line)
White_noise_training = (max(Data.iloc[i_line, :]) * 10**(-RSB_db / 20)) * round(1, n_column)
Noised_Data.iloc[i_line, :] = Data.iloc[i_line, :] + White_noise_training
然后我得到了下面的错误:-----------------------
Traceback (most recent call last):
File "C:/Users/pedro.Grisard/Desktop/ocsvm/main.py", line 25, in <module>
Noised_Data.iloc[i_line] = Data.iloc[i_line, :] + White_noise_training
AttributeError: 'list' object has no attribute 'iloc' ```
如果您想将修改后的数据存储在另一个数据帧Noised_Data
中,可以使用:
RSB_db = 10
##Noised_Data = [] # <=== remove this line
"""INPUT DATA
"""
Path_DataBase = filedialog.askopenfilename()
All_Data = pd.read_csv(Path_DataBase, header=None)
Shape = All_Data.shape
n_line = Shape[0]
n_column = Shape[1]
Data = All_Data.iloc[0:, :Shape[1] - 2] # Extract Data
Noised_Data = Data.copy() # <=== Add this line
"""ADD Noise
"""
if RSB_db != 0:
for i_line in range(n_line):
print(i_line)
White_noise_training = (max(Data.iloc[i_line, :]) * 10**(-RSB_db / 20)) * round(1, n_column)
Noised_Data.iloc[i_line, :] = Data.iloc[i_line, :] + White_noise_training
在您的原始代码中,Noised_Data
被定义为一个空列表,而不是一个数据帧。因此,它不具有用于数据帧的属性iloc
。如果您想将修改后的数据存储在另一个数据帧中,您可以在处理之前复制它,就像上面修改过的代码一样。