Суммирование списка фреймов данных по номеру столбца

#python #pandas

#python #pandas

Вопрос:

У меня есть список из 5 фреймов данных, каждый из которых содержит 9 столбцов и 15000 строк. Я надеюсь суммировать столбцы из каждого фрейма данных, чтобы получить окончательный фрейм данных 9 * 15000.

Я попробовал что-то вроде

 Total = reduce(lambda x, y: x.add(y, fill_value=0), List)
  

Все, что это делает, это добавляет все столбцы к общему количеству df.

Ответ №1:

Если имена столбцов одинаковы для всех фреймов данных, вы можете просто добавить фреймы данных:

 result=df1 df2 df3 df4 df5
  

Имена столбцов должны быть одинаковыми для всех фреймов данных. Чтобы переименовать их, попробуйте следующее:

 df2.columns=df1.columns
df3.columns=df1.columns
df4.columns=df1.columns
df5.columns=df1.columns
  

Все фреймы данных будут иметь те же имена столбцов, что и df1, и то же самое с результирующим фреймом данных

Комментарии:

1. Когда я это делаю, это дает мне 45 столбцов df. [15118 строк x 45 столбцов] Проблема возникает из-за того, что я должен индексировать каждый отдельный элемент в списке. Думаю, я мог бы разделить список. Просто искал более быстрый способ.

2. Являются ли имена столбцов одинаковыми для всех фреймов данных?

3. Имена столбцов не совпадают. Извините, забыл уточнить, что

4. Если имена столбцов совпадают, они будут добавлены в один и тот же столбец. Это зависит от вашей проблемы, если вы можете переименовать все столбцы и выполнить сумму

5. Да, я полагаю, я мог бы переименовать столбцы в каждом из них в одно и то же. Как бы я это сделал?

Ответ №2:

Вы можете напрямую добавлять несколько фреймов данных как

 Total=df1 df2 df3 df4 df5
  

но только если размеры фреймов данных одинаковы.