не знаю, как заставить int64 и float64 - PullRequest
4 голосов
/ 15 марта 2020

У меня есть список, который заполняется из файла Excel (импорт в pandas)

a=[df.math[0],df.bio[0],df.chemistry[0]]

, когда я передаю среднее значение (a), оно выдает мне следующую ошибку:

don't know how to coerce int64 and float64

Как это исправить? Я пробовал a=[float(df.math[0]),float(df.bio[0]),float(df.chemistry[0])] - но все равно не работает

В чем, на ваш взгляд, проблема?

1 Ответ

4 голосов
/ 15 марта 2020

Я думаю, здесь самым простым является использование numpy.mean:

x = np.mean(a)

Образец :

 df = pd.DataFrame({
        'A':list('abcdef'),
         'math':[4,5,4,5,5,4],
         'chemistry':[7.3434,8,9,4,2,3],
         'bio':[1,3,5,7,1,0],
         'E':[5,3,6,9,2,4],
         'F':list('aaabbb')
})

x = np.mean(a)
print (x) 
4.114466666666666

Pandas решение:

x = df.loc[0, ['math','bio','chemistry']].mean()
print (x) 
4.114466666666666

Также для меня работает преобразование всех значений в числа с плавающей точкой:

import statistics 

a = [float(df.math[0]),float(df.bio[0]),float(df.chemistry[0])]
x = statistics.mean(a)
print (x) 
4.114466666666667

import statistics 

a = [float(x) for x in a]
x = statistics.mean(a)
print (x) 
4.114466666666667
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...