keyang_0519 2022-08-09 10:14 采纳率: 100%
浏览 219
已结题

关于数据处理的问题,如何解决?

程序一直报错

import matplotlib.pyplot as plt
import math
import pandas as pd
import numpy as np
import csv
from scipy.optimize import curve_fit

plt.close("all")

def f_1(x, k, b):
    return k * x + b

Ra=8.314
#源文件地址和目标文件夹
data_address=r'C:\Users\keyang\Desktop\test.csv'
save_floder=r'C:\Users\keyang\Desktop'
#生成文件的头部行
head_name = ['T_start','T_end','Conversion_degree','Activation_energy']
#写入CSV文件
with open(save_floder + '\\' + 'result.csv','w', newline='',encoding='utf-8-sig') as list_writer:
    writer = csv.writer(list_writer)
    writer.writerow(head_name)
#指定转化率间隔
conversion_value = 0.05
#读取源文件
df = pd.read_csv(data_address)
conversion_degree_total = df['Degree']
Temperature_total = df['Temp']
#循环次数
num = int(0.9/conversion_value)
for i in range(num):
    x_range=[]
    y_range=[]
    Temperature_range=[]
    Top=conversion_degree_total[0]
    while conversion_degree_total is not None:
        a=conversion_degree_total.pop(0)
        t=Temperature_total.pop(0)
        Temperature_range.append(t)
        x_num=1/t
        x_range.append(x_num)
        y_num=math.log((-math.log(1-a))/(t**(2)))
        y_range.append(y_num)
        if float(conversion_degree_total.values[0]-Top)>conversion_value:
            break
    #x_array,y_array是我们要拟合的数据
    x_array = np.array(x_range)
    y_array = np.array(y_range)
    k, b = curve_fit(f_1, x_array, y_array)[0]
    Ea=-Ra*k
    with open(save_floder +'\\'+ 'result.csv','a', newline='',encoding='utf-8-sig') as list_writer:
         writer = csv.writer(list_writer)
         writer.writerow(Temperature_range[0],Temperature_range[-1],conversion_value*(i+1),Ea)
运行结果及报错内容

Traceback (most recent call last):
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3361, in get_loc
return self._engine.get_loc(casted_key)
File "pandas_libs\index.pyx", line 76, in pandas._libs.index.IndexEngine.get_loc
File "pandas_libs\index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
File "pandas_libs\hashtable_class_helper.pxi", line 2131, in pandas._libs.hashtable.Int64HashTable.get_item
File "pandas_libs\hashtable_class_helper.pxi", line 2140, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: 0

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "d:\OneDrive - 东南大学\python practice\cs2.py", line 37, in
a=float(conversion_degree_total.pop(0))
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 4850, in pop
return super().pop(item=item)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 870, in pop
result = self[item]
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 942, in getitem
return self._get_value(key)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 1051, in _get_value
loc = self.index.get_loc(label)
File "D:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 0

我的解答思路和尝试过的方法

excel表格里面有一列数据,想要每间隔固定的差值的一部分数据进行计算,然后将计算的结果写入一个新的csv文件

数据实例

img

  • 写回答

1条回答 默认 最新

  • 快乐小土狗 2022-08-09 10:51
    关注

    File "d:\OneDrive - 东南大学\python practice\cs2.py", line 37, in
    a=float(conversion_degree_total.pop(0))
    这个代码在哪里,咋没看见你发的有

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 已采纳回答 8月9日
  • 修改了问题 8月9日
  • 赞助了问题酬金5元 8月9日
  • 展开全部

悬赏问题

  • ¥15 unity3d机械臂
  • ¥20 判断两个表是否完全相同
  • ¥20 工控机出现散热器转一下停一下这种情况,是什么原因造成的
  • ¥15 双显卡,启动docker容器报错。
  • ¥15 想编写一个期货跨期套利的程序
  • ¥15 一个线程在sleep的时候set一个信号会起作用吗
  • ¥50 如何利用matlab将现有的地基雷达回波数据调制为机载雷达回波数据
  • ¥100 需求高精度PT100设计电路和算法
  • ¥15 单片机配网,继电器开关,广播
  • ¥60 Qcustomplot绘制实时动态曲线