#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
но только если размеры фреймов данных одинаковы.