Здесь у меня есть данные для импорта из файла CSV. Я написал уравнение внутри класса и для решения уравнения данные будут импортированы из файла CSV.Когда я запускаю свой код, я получаю сообщение об ошибке типа «индексы кортежа должны быть целыми числами или кусочками, а не str» при использовании panda python.Может ли кто-нибудь помочь мне решить эту проблему?Я загружаю свой код и файл CSV здесь.
def time_convert(x):
h,m,s = map(int,x.split(':'))
return (h*60+m)
def ph_convert(time,we,h,a,w):
while time <= 30:
level = 1.1
level = float(level)
if w == 1:
ph= ((((6*we)+(1*h))/level -(4*a)))/time
else:
ph= ((6+((1*we)+(3*h))/level -(6 *a)))/time
break
while time <=60:
level = 1.25
level = float(level)
if w == 1:
ph= ((((6*we)+(1*h))/level -(4*a)))/time
else:
ph= ((6+((1*we)+(3*h))/level -(6 *a)))/time
break
print(ph)
data = pd.read_csv('data1.csv')
data['time'] = data['time'].apply(time_convert)
we = data['we'].astype(float)
h = data['h'].astype(float)
a = data['a'].astype(float)
w = data['w'].astype(float)
time = data['time'].astype(float)
print(ph_convert(time,we,h,a,w))
Подмножество моего файла CSV:
we h a w time
48.1 150 53 1 6:15:00
48.1 150 53 1 9:00:00
48.1 150 53 1 9:25:00
48.1 150 53 1 9:30:00
48.1 150 53 1 11:00:00
Ошибка:
ValueError Traceback (most recent call last)
<ipython-input-922-9fe360350b03> in <module>()
----> 1 print(ph_convert(time,we,h,a,w))
<ipython-input-904-73455dabb050> in ph_convert(time, we, h, a, w)
3
----> 5 while time <= 30:
6 level = 1.1
7 level = float(level)
~\Anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
1571 raise ValueError("The truth value of a {0} is ambiguous. "
1572 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
-> 1573 .format(self.__class__.__name__))
1574
1575 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().