2022/06/08-2022/06/09 Python 处理数据

 

2022-06-08

import csv,sys,os
import matplotlib.pyplot as plt

def getdata(filename):
    # filename = '15_000_ALL.csv'
    csv_reader = csv.reader(open(filename))

    n = 0
    ls = []
    res = [0]
    val = []
    res_val = []

    for row in csv_reader:
        n += 1
        if n <=12: continue
        tmp = float(row[1])
        if tmp < -4.4:
            tmp = -5
            ls.append([n,tmp])
        elif tmp < -0.75:
            tmp = -1
            ls.append([n,tmp])
        elif 1.35 < tmp < 1.7:
            tmp = 1.5
            ls.append([n,tmp])
        elif tmp > 1.8:
            tmp = 2
            ls.append([n,tmp])
        else:
            tmp = 0

        if tmp != res[-1] and tmp != 0:
                res.append(tmp)

        if tmp == 1.5 or tmp == -1:
            val.append(float(row[3]))
            continue
        elif val != []:
            res_val.append([res[-1],sum(val)/len(val)])
            val = []
    # print(res,len(res))
    return res_val

start_list = [1,1,1,1,1,1,1,1,3,6,4,3,1,1]
filelist = ['{}_000_ALL.csv'.format(i) for i in [1,2,3,4,5,6,7,8,10,11,12,13,14,15]]
# filename = '14_000_ALL.csv'
# print(getdata(filename),len(getdata(filename)))

def output(filename,index):
    writefilename = filename + '.csv'
    with open(writefilename,'w',encoding='gbk',newline="") as f:
        csv_writer = csv.writer(f)
        tmp = getdata(filename)
        print(len(tmp))
        for i in tmp[index-1:index+28]:
            csv_writer.writerow(i)
        f.close()
        print(filename + ' is done!')

for i,j in enumerate(filelist):
    output(j,start_list[i])

 

 

 

2022-06-09

import matplotlib.pyplot as plt
import numpy as np
import xlrd,sys,os
import xlwt as ExcelWrite

filename = 'Eng_Sweep_IdVg_220609_095907.xlsx'
data = xlrd.open_workbook(filename)
table = data.sheet_by_name('Sheet1')
V = table.col_values(2)
I = table.col_values(3)

tmp = 7
ls = []
for i in range(1,513):
    ls.append(tmp)
    if i%8 == 0:
        tmp += 108
    else:
        tmp += 114
index = 0
for i,j in enumerate(ls):
    if i%8 == 0:
        plt.savefig('fig/IdVg{}.jpg'.format(index))
        index += 1
        plt.figure()
        plt.title('Start from No. {} row!'.format(j))

    label='{}'.format(i%8)
    plt.plot(V[j-1:j+49],I[j-1:j+49],'.-',label=label)
    plt.yscale('log')
    plt.xlabel('Voltage')
    plt.ylabel('Current')

    plt.legend()

plt.savefig('fig/IdVg{}.jpg'.format(index))

 

posted @ 2022-06-10 20:36  ghzphy  阅读(34)  评论(0编辑  收藏  举报