Есть ли способ l oop через список в python? - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь создать таблицу 2X2 с левой стороной, содержащей список имен столбцов (из другого кадра данных), а с правой стороны, содержащей сумму целых чисел в строках соответствующих столбцов.

Результат того, что я пытаюсь сделать, будет примерно таким:

enter image description here

Если вы спросите меня, последовательность кодирования будет выглядеть примерно так:

  • Хранить содержимое в ячейке A1 в строковой переменной x;
  • Go до кадра данных и найдите столбец с таким именем;
  • Суммируйте указанный столбец и выведите значение в B1;
  • Go на одну строку вниз и x принимает значение A2;
  • L oop 6 раз.

Я пытался использовать этот код:

df.loc['Total',:]= df.sum(axis=0)

С надеждой, что однажды я Получив итог внизу, я смогу создать еще один столбец, транспонированный. Но мой python терминал зависал каждый раз, когда я запускал этот код (всего 50 000 строк).

Я также пробовал это

df['column name'].sum(axis=0)

Но это дало мне только сумму в один столбец. У меня около 30 столбцов. И кроме того, я могу только «распечатать» коды. Это не помещает их в таблицу соответственно, как было бы полезно. Конечная цель - это просто таблица. Во всяком случае, предложения или ссылки на то, где это было сделано раньше, будут оценены. Спасибо

1 Ответ

1 голос
/ 01 апреля 2020
In [3]: df = pd.DataFrame({"a": [1, 3, 5, 7, 9, 0], "b":[5, 8, 1, 0, 3, 5], "c": [6, 2, 9, 9, 4, 2]})                                                   

In [4]: df                                                                      
Out[4]: 
   a  b  c
0  1  5  6
1  3  8  2
2  5  1  9
3  7  0  9
4  9  3  4
5  0  5  2

In [5]: df.sum()                                                                
Out[5]: 
a    25
b    22
c    32
dtype: int64

Меня немного смущает формулировка вашего вопроса. Это ответ, который вы хотите? Или вы хотите, чтобы метод делал то же самое, кроме использования циклов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...