def myflag(path1,path2):
data = pd.read_csv(path1)
for i in range(data.shape[0]):
b1 = math.cos(data.iloc[i,4])
b2 = 1.5*1361*(b1**1.2)+100
b3 = 0.95*1361*(b1**1.2)+50
b4 = 1.2*1361*(b1**1.2)+50
b5 = 0.95*1361*(b1**1.2)+10
b6 = 0.75*1361*(b1**1.2)+30
b7 = float(data.iloc[i, 2])+float(data.iloc[i, 1])*b1
b8 = float(data.iloc[i, 0])/b7
if float(data.iloc[i, 0])<-4 and float(data.iloc[i, 0])>b2:
data.loc[i, 6]= '1-1'
if float(data.iloc[i, 1]) < -4 and float(data.iloc[i, 1]) > 1361:
data.loc[i, 6] = '1-2'
if float(data.iloc[i, 2]) < -4 and float(data.iloc[i, 2]) > b3:
data.loc[i, 6] = '1-3'
if float(data.iloc[i, 3]) < 40 and float(data.iloc[i, 3]) > 700:
data.loc[i, 6] = '1-4'
if float(data.iloc[i, 0]) < -2 and float(data.iloc[i, 0]) > b4:
data.loc[i, 6] = str(data.loc[6])+','+'2-1'
if float(data.iloc[i, 1]) < -2 and float(data.iloc[i, 1]) > b5:
data.loc[i, 6] = '2-2'
if float(data.iloc[i, 2]) < -2 and float(data.iloc[i, 2]) > b6:
data.loc[i, 6] ='2-3'
if float(data.iloc[i, 3]) < 60 and float(data.iloc[i, 3]) > 500:
data.loc[i, 6] = '2-4'
if float(data.iloc[i,4]) < 75:
if b8<0.92 and b8>1.08:
data.loc[i,6] = '3-1'
if float(data.iloc[i, 4]) > 75:
if b8 < 0.85 and b8 > 1.15:
data.loc[i, 6] = '3-1'
if float(data.iloc[i, 0]) != 0:
b9 = float(data.iloc[i, 2]) / float(data.iloc[i, 0])
if float(data.iloc[i, 4]) < 75:
if b9 > 1.05:
data.loc[i, 6] = '3-2'
if data.iloc[i, 4] > 75:
if b9 > 1.1:
data.loc[i, 6] = '3-2'
b10 = 5.6696 * (10 ** (-8)) * float(data.iloc[i, 5])
b11 = 0.4 * b10
b12 = b10 + 25
if float(data.iloc[i, 3]) < b11 and float(data.iloc[i, 3]) > b12:
data.loc[i, 6] = '3-3'
data.to_csv(path2)
生成的csv文件第六列全是3-2,我猜想原先赋值的1-1,1-2这些可能被3-2覆盖了
data.loc[i, 6] = data.loc[i,6]+'3-2' 这样写发现会报错,请问应该怎么改啊?
“Devil组”引证GPT后的撰写:
不太现实。
不能在字符串和整数之间进行加法运算。取而代之的是,要将两个字符串合并成一个新字符串。使用字符串连接操作符“+”即可完成这个任务。
请使用以下代码来更正这个问题:
data.loc[i, 6] = data.loc[i, 6] + ',3-2'
这将把字符串“3-2”添加到第6列中已有的字符串的末尾。