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