脚本(自用)

这段代码主要涉及数据读取、差分处理、数据写入CSV以及门信号的判断。首先,使用pandas从CSV文件中读取数据,对数据列'A'进行差分处理并创建新的列'new',接着判断差分后的值是否在特定范围内,符合条件的赋值为1,否则为0。然后,检查list3中是否存在连续的5个1,以此来识别门信号,并计算触发次数。整个过程旨在对数据进行预处理和特征提取,用于后续的分析或模型构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)
'''

'''
触发率的判断
可以用小门/大门来进行判断
'''



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网友张某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值