У вас есть две возможности.Во-первых, ваш подход с прямой индексацией.(Я сжал его в цикл for, чтобы уменьшить код.)
amountOfTotalLetters = 0
for lttr in ('a', 'b', 'c', 'd', 'e'):
try:
amountOfTotalLetters += df.loc[lttr]
except KeyError:
continue
Преимущество первого решения состоит в том, что вы можете отлавливать ошибку конкретно для каждой буквы или определять общее поведение для ошибки, например *Например, 1004 *.
Во-вторых, следует использовать реализованную функцию суммирования pandas
:
amountOfTotalLetters = df.sum()
или, если ваш фрейм данных имеет много столбцов, но вам нужна только одна сумма:
amountOfTotalLetters = df.amount.sum()
Второй подход проще для чтения, быстрее и может использоваться одновременно для многих столбцов.Если вы не хотите обрабатывать ошибки особым образом, я рекомендую использовать второе решение.
По поводу того, что вы добавили в свой вопрос:
Нет ничего проще, чем создать массив изинформационного кадра панд.Вместо явного (и, следовательно, громоздкого и подверженного ошибкам) data = np.array([ a, b, c, d, e])
вы можете легко сделать это:
data = df.values # If "letter" is your index
# or if letter is also a column:
data = df.amount.values