8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何修复无法将系列转换为

kmoser 1月前

33 0

我有一个 excel 数据 .xslx,有 4 列和多行,我只想提取第 0 列(即我的波长)和第 3 列(即我的辐射),然后根据该数据制作 pyplot。我的

我有一个 excel 数据 .xslx,有 4 列和多行,我只想提取第 0 列(即我的波长)和第 3 列(即我的辐射),然后根据该数据制作 pyplot。我的存档如下所示

280.0   8.2000E-02  4.7309E-23  2.5361E-26
280.5   9.9000E-02  1.2307E-21  1.0917E-24
281.0   1.5000E-01  5.6895E-21  6.1253E-24
281.5   2.1200E-01  1.5662E-19  2.7479E-22
282.0   2.6700E-01  1.1946E-18  2.8346E-21
282.5   3.0300E-01  4.5436E-18  1.3271E-20

接下来我想使用 curve_fit 来根据普朗克方程将黑体调整到 peplos。但是当我使用曲线拟合时出现了错误:

File"/Applications/Spyder.app/Contents/Resources/lib/python3.9/pandas/core/series.py", line 191, in wrapper
raise TypeError(f"cannot convert the series to {converter}")

 TypeError: cannot convert the series to <class 'float'>    

当程序尝试计算协方差时会出现此错误。我尝试使用 astype(float) 来改变我的辐射和波长,但没有效果。

import pandas as pd
import math
import matplotlib.pyplot as plt
import numpy as np
from scipy.constants import h, c, k
from scipy.optimize import curve_fit
Data=pd.read_excel('Sun_Data.xlsx', sheet_name='Spectra',header=2) 
#fname='Sun_Data.txt' 
#A=np.loadtxt(fname)

wavelength=Data.iloc[:,0].astype(float)
rad=Data.iloc[:,3].astype(float)

#wave=list(wavelength)
#print(wave)
def funcion(wavelegth,T):
    planck=(2*math.pi*c**2*h)/(wavelength**5*(math.exp(h*c/(wavelength*k*T))-1))
    return planck

#print(funcion(wavelength, rad))
t,cov=curve_fit(funcion, wavelength, rad)
plt.plot(wavelength,rad, color='pink')
plt.show()

我认为我的错误是使用 pandas 读取数据,但我不确定,有人可以帮帮我吗?

帖子版权声明 1、本帖标题:如何修复无法将系列转换为
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由kmoser在本站《pandas》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这是文件 \'/Applications/Spyder.app/Contents/Resources/lib/python3.9/pandas/core/series.py\',第 191 行,在包装器中引发 TypeError(f\'无法将系列转换为 {converter}\') TypeError: 无法将系列转换为

返回
作者最近主题: