import pandas as pd
import csv
data1=pd.read_csv("kong.csv") #必须添加header=None,否则默认把第一行数据处理成列名导致缺失
# data5=pd.read_csv("kong11.csv") #必须添加header=None,否则默认把第一行数据处理成列名导致缺失
data2 = data1['A']
# print(data1)
# data3 = data1['A']
list1 = data2.values.tolist()
list2 = []
list3 = []
# list3 = data3.values.tolist()
# list4 = []
'''
将数据追加写入csv文件中的一列
# data['new'] = data1 # 将数据插入新列new ‘NEW’是列名
# data.to_csv(r"kong1.csv", mode='a', index=False)
'''
'''
对所采集到的数据进行数据处理,差分处理(求斜率),
然后再对斜率进行判断,如果在我们的要求范围内,
则为1,否则为0
'''
# 差分处理以及1/0的判断
for i in range(len(list1)):
if i == 0:
difference = 0
else:
difference = list1[i]-list1[i-1]
list2.append(difference)
data1['new'] = list2 # 将数据插入新列new
# # data['new'] = list2 # 将数据插入新列new
data1.to_csv(r"kong11.csv", mode='a', index=False)
for i in range(len(list2)):
if list2[i] >=5 and list2[i] <= 13:
list2[i] = 1
else:
list2[i] = 0
list3 = list2
'''
门信号的判断
思路:可以对1/0进行处理,也就是去看list3中是否有连续的(5/4)个1,具体检查方法是
比如列表为123456789
则以12345 23456 34567 这样来取五个数
如果有那就是一个门,设置一个变量,如果有一个门,a+1+1+1+1+1,a = 0
l = [1,1,1,1,1,1,1,1,2,1,1]
a = sum([i == [1,1,1,1,1] for i in [l[i:i+5] for i in range(len(l)-4)]])
print(a)
那么最后输出a,a就是触发次数
aa = []
num = 1
for i in range(0,len(list)):
l = list[i:i + 5]
if len(list[i:i + 5]) < 5:
a = list[0:5-len(list[i:i + 5])]
else:
a = []
l = l+a
print(l)
aa.append(l)
for j in range(0,len(aa)):
if aa[j] != [1,1,1,1,1] and aa[j+1] ==[1, 1, 1, 1, 1]:
num += 1
print(num)
'''
'''
触发率的判断
可以用小门/大门来进行判断
'''
# 门信号的判断
aa = []
num = 1
for i in range(0,len(list3)):
l = list3[i:i + 5]
if len(list3[i:i + 5]) < 5:
a = list3[0:5-len(list3[i:i + 5])]
else:
a = []
l = l+a
print(l)
aa.append(l)
for j in range(0,len(aa)):
if aa[j] != [1,1,1,1,1] and aa[j+1] ==[1, 1, 1, 1, 1]:
num += 1
print(num)
data1['new'] = list3 # 将数据插入新列new
data1.to_csv(r"kong11.csv", mode='a', index=False)
'''
list.append(difference)
语法: list.append(element)
将difference所得的值写入到append里面
'''
'''
门信号的判断
思路:可以对1/0进行处理,也就是去看list3中是否有连续的(5/4)个1,具体检查方法是
比如列表为123456789
则以12345 23456 34567 这样来取五个数
如果有那就是一个门,设置一个变量,如果有一个门,a+1+1+1+1+1,a = 0
l = [1,1,1,1,1,1,1,1,2,1,1]
a = sum([i == [1,1,1,1,1] for i in [l[i:i+5] for i in range(len(l)-4)]])
print(a)
那么最后输出a,a就是触发次数
aa = []
num = 1
for i in range(0,len(list)):
l = list[i:i + 5]
if len(list[i:i + 5]) < 5:
a = list[0:5-len(list[i:i + 5])]
else:
a = []
l = l+a
print(l)
aa.append(l)
for j in range(0,len(aa)):
if aa[j] != [1,1,1,1,1] and aa[j+1] ==[1, 1, 1, 1, 1]:
num += 1
print(num)
'''
'''
触发率的判断
可以用小门/大门来进行判断
'''