Элегантный способ добавить строки нескольких фреймов данных по общему индексу - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть список из ~ 5000 фреймов данных, каждый из которых содержит ~ 20 столбцов и ~ 15 000 строк.Все фреймы данных имеют одинаковые имена столбцов, и я хотел бы элегантно суммировать все данные во всех фреймах для одного и того же значения в «времени».Пример показан ниже для 2-х кадров данных.Ключевым моментом здесь является выполнение этого максимально эффективно.

df1 =

time    data1   data2
0       100     100
1       100     100
2       100     100

df2 =

time    data1   data2
1       100     100
2       100     100
3       100     100

output =

time    data1   data2
0       100     100
1       200     200
2       200     200
3       100     100

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете попробовать add, что добавит соответствующие индексы.В этом случае вы хотите соответствовать вовремя, поэтому вы можете установить его в качестве индекса.

df1.set_index('time').add(df2.set_index('time'), fill_value=0)

      data1  data2
time              
0     100.0  100.0
1     200.0  200.0
2     200.0  200.0
3     100.0  100.0

Значение заполнения установлено на 0, так что если в одном кадре данных есть значение, а в другом нет, то в качестве отсутствующего принимается значение 0.

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