|
发表于 2020-6-8 11:56:26
|
显示全部楼层
import pandas as pd
data = pd.DataFrame({"E520":[9,4,1,5,9,-1,-3,-5,-3,1,4,5,6]})
data["label"] = 0#标签列
data["step"] = 0#步值列
#print(data)
E520_len = len(data["E520"])
#先解决index列
for i in range(E520_len):
step = 0
for j in range(i + 1,E520_len):
if data.iloc[i,0]*data.iloc[j,0] > 0:#同时为正或负
pass
else:
if data.iloc[j,0] > 0:
data.iloc[j,1] = 100
else:
data.iloc[j,1] = -100
i = j
break
#print(data)
#再解决step列
data_label_not0_index = data[data["label"] != 0].index.to_list()
#print(data_label_not0_index)
data_label_not0_index_length = len(data_label_not0_index)
data_label_not0_step = [data_label_not0_index[i+1] - data_label_not0_index[i] + 1 for i in range(data_label_not0_index_length - 1)]
#print(data_label_not0_step)
count = 0
for i in data_label_not0_index[:-1]:
data.iloc[i,2] = data_label_not0_step[count]
count += 1
print(data) |
|