折射指数Python列表的计算

时间:2019-07-15 00:08:40

标签: python excel pandas spyder

I read this question,我试图编写代码来计算折射率,但是,我的问题是我已经运行了多个嵌套的“ for循环”,但是问题是图形没有t显示,并且Spyder引发错误,指出:相位是2列数据帧,而不是对象字典。目的是计算每个样品的折射率。这是代码

编辑1个代码

I read this question,它似乎根本没有帮助,但一直说它根本无法解决此错误

import pandas as pd
import scipy as sp
from scipy import constants
import numpy as np
import matplotlib.pyplot as plt
import scipy.constants
d = ['Reference','Lactose.500g.2p', 'Lactose.375g.2p','Lactose.425g.2p','Lactose.450g.2p', 
     'Lactose.229g.16p', 'Lactose.343g.16p', 
     'Lactose.400g.16p', 'Lactose.419g.16p']
for i in d:
    reference = []
    list_reference = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i])
    reference.append(list_reference)
    thzxaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'E', skiprows= [0,1] )
    samplephaseyaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'F' , skiprows = [0,1])
    referenceyaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'L' , skiprows = [0,1])
    thick = 30000 #micron 3cm
    thick = 30000 *10**-6 #m
    c_m=scipy.constants.c
    for z,w,y in zip(thzxaxis,samplephaseyaxis,referenceyaxis):
        phase = samplephaseyaxis[w]-referenceyaxis[y]
        m= 2*np.pi*(thzxaxis[z]*10**12)
        for q, p in zip(phase, m):
            j = [phase[0:,0]][q]
            k = [m[0:,0]][p]
            for o,l in zip(k, j):
                n= 1 + c_m *[l] / (m[k]*thick)
                for e2, e3 in zip(n, thzxaxis):
                    fig_index, ax = plt.subplots(nrows = 1, ncols = 1, figsize = (10,10))
                    ax.plot(thzxaxis[e3], n[e2])
                    ax.set_xlim(0,3)
                    ax.set_title( 'Index of Refraction of'+i)
                    #ax.set_ylim(1,2)
                    ax.grid(True)           

编辑1个代码

import pandas as pd
import scipy as sp
from scipy import constants
import numpy as np
import matplotlib.pyplot as plt
import scipy.constants
import operator
d = ['Reference','Lactose.500g.2p', 'Lactose.375g.2p','Lactose.425g.2p','Lactose.450g.2p', 
     'Lactose.229g.16p', 'Lactose.343g.16p', 
     'Lactose.400g.16p', 'Lactose.419g.16p']
for i in d:
    reference = []
    list_reference = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i])
    reference.append(list_reference)
    thzxaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'E', skiprows= [0,1] )
    samplephaseyaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'F' , skiprows = [0,1])
    referenceyaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'L' , skiprows = [0,1])
    thick = 30000 #micron 3cm
    thick = 30000 *10**-6 #m
    c_m=scipy.constants.c
    phase =  list(map(operator.sub, samplephaseyaxis, referenceyaxis))
    for z in thzxaxis:
        m= 2*np.pi*(thzxaxis[z]*10**12)
        for q, p in zip(phase, m):
            j = phase[0:,0]
            k = m[0:,0]
            for o,l in zip(k, j):
                n= 1 + c_m *[l] / (m[k]*thick)
                for e2, e3 in zip(n, thzxaxis):
                    fig_index, ax = plt.subplots(nrows = 1, ncols = 1, figsize = (10,10))
                    ax.plot(thzxaxis[e3], n[e2])
                    ax.set_xlim(0,3)
                    ax.set_title( 'Index of Refraction of'+i)
                    #ax.set_ylim(1,2)
                    ax.grid(True)            

编辑一个代码错误

--'str'和'str'的不受支持的操作数类型

我尝试编辑代码以使差异起作用,但是它将第二个参考阶段读取为str,并表示其1.5708.1而不是1.5708。 编辑代码2

import scipy as sp
from scipy import constants
import numpy as np
import matplotlib.pyplot as plt
import scipy.constants
import operator
d = ['Reference','Lactose.500g.2p', 'Lactose.375g.2p','Lactose.425g.2p','Lactose.450g.2p', 
     'Lactose.229g.16p', 'Lactose.343g.16p', 
     'Lactose.400g.16p', 'Lactose.419g.16p']
for i in d:
    reference = []
    list_reference = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i])
    reference.append(list_reference)
    thzxaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'E', skiprows= [0,1] )
    samplephaseyaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'F' , skiprows = [0,1])
    referenceyaxis = pd.read_excel('C:\\Kean\\MasterFileLactose071019.xlsx', sheet_name = [i], usecols = 'L' , skiprows = [0,1])
    thick = 30000 #micron 3cm
    thick = 30000 *10**-6 #m
    c_m=scipy.constants.c
    samplephase = [samplephase_number for samplephase_number in samplephaseyaxis[i]] 
    referencephase = [referencephase_number for referencephase_number in referenceyaxis[i]]
    for x,y in zip(samplephase, referencephase):
        difference = x - y
        for z in thzxaxis:
            m= 2*np.pi*(thzxaxis[z]*10**12)
            for o,l in zip(k, j):
                n= 1 + c_m *[l] / (m[k]*thick)
                for e2, e3 in zip(n, thzxaxis):
                    fig_index, ax = plt.subplots(nrows = 1, ncols = 1, figsize = (10,10))
                    ax.plot(thzxaxis[e3], n[e2])
                    ax.set_xlim(0,3)
                    ax.set_title( 'Index of Refraction of'+i)
                    #ax.set_ylim(1,2)
                    ax.grid(True)         

0 个答案:

没有答案