Pandas密钥在读取文件时出错



我有个问题。这是我的节目。我用这个程序来找到合适的A和T参数,它们给出了合适的指数曲线。

#otwieranie pliku
import pandas as pd
data = pd.read_csv("mgdg", sep = " ")
#przypisanie do zmiennych t -czas, C - C 😉
t = data["czas"]
C = data["C"]
#jak wyglada zaleznosc C od t?
import matplotlib.pyplot as plt
plt.plot(t,C)
plt.show()
#funkcja do optymalizacji
import numpy as np
from scipy.optimize import curve_fit
def func(t, A1,A2,A3,T1, T2, T3, T4):
return A1 * np.exp(-t/T1) + A2 * np.exp(-t/T2) + A3 * np.exp(-t/T3) +(1-A1-A2-A3) * np.exp(-t/T4)
#sama optymalizacja, p0 zawiera parametry początkowe
params, params_covariance = curve_fit(func, t,C , p0=np.asarray([0.23,0.40,0.1,253,8,4600,1400]))
#do P zapisuje zaokrąglone parametry
P  = [round(x,2) for x in params]
#jak sie dopasowalo?
plt.plot(t,C)
plt.plot(t,func(t,P[0],P[1], P[2], P[3], P[4], P[5], P[6]), c = "red")
plt.show()

这是我的文件中的一个片段

0 1
1 0.756897
2 0.712127
3 0.679612
4 0.653257
5 0.630961
6 0.611496
7 0.594308
8 0.578927
9 0.564992
10 0.552246

这是我的错误

(anaconda_env) jakub@jakub-Z370-HD3P:~/czasy_wiazan/Adrian$ python exp.py
Traceback (most recent call last):
File "/home/jakub/anaconda3/envs/anaconda_env/lib/python3.9/site-packages/pandas/core/indexes/base.py", line 2898, in get_loc
return self._engine.get_loc(casted_key)
File "pandas/_libs/index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 101, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1675, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1683, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'czas'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/jakub/czasy_wiazan/Adrian/exp.py", line 5, in <module>
t = data["czas"]
File "/home/jakub/anaconda3/envs/anaconda_env/lib/python3.9/site-packages/pandas/core/frame.py", line 2906, in __getitem__
indexer = self.columns.get_loc(key)
File "/home/jakub/anaconda3/envs/anaconda_env/lib/python3.9/site-packages/pandas/core/indexes/base.py", line 2900, in get_loc
raise KeyError(key) from err
KeyError: 'czas'

为什么会出现此错误?我使用的是Anaconda、Python 3.9、pandas、numpy和matplotlib。我应该更改什么?

您似乎没有一个名为czas的列。检查列名的一种方法是键入list(data)。您应该看到所有列名的列表。如果需要重命名DataFrame中的列,请参阅此链接:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html

没有列"czas";在您的文件中。仅存在列0,1。如果你想使用";czas";和"C"作为列,在调用它们之前,您必须按以下方式重命名它们:

df.columns=['czas', 'C']

最新更新