Эффективно обновляйте значения счетчика в кадре данных Pandas - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий df, содержащий ежедневные подсчеты для каждого пользователя:

print(delay_df)

                   delay_count
C_TIT                 
20702171             2
20711024             1

...

В частности, индекс представляет уникальный идентификатор пользователя, а «delay_count» - соответствующее значение.

I хотел бы последовательно обновлять основной фрейм данных значениями, содержащимися в ежедневных фреймах данных; на данный момент процедура следующая:

# Initialize an empty df on the first day for global count
delay_global = pd.DataFrame(columns = ["delay_count"])

# Update counts for each user as new data comes in

for user_code in delay_df.index:
        # If the index value - client code - exists, update adding, else create a new row
        try:
            delay_global.loc[user_code] += delay_df.loc[user_code].delay_count
        except:  
            delay_global.loc[user_code] = delay_df.loc[user_code]

Для иллюстрации на примере:

# time 0 - Initialization
delay_global = pd.DataFrame(columns = ["delay_count"])

# time 1
print(delay_df)

                   delay_count
    C_TIT                 
    20702171             2
    20711024             1

### delay_global is updated with data from delay_df

print(delay_global)

                   delay_count
    C_TIT                 
    20702171             2
    20711024             1


# time 2

print(delay_df)

                   delay_count
    C_TIT                 
    1234             2
    20711024        10

### delay_global is updated with data from delay_df

print(delay_global)

               delay_count
    C_TIT                 
    20702171             2
    20711024            11
    1234                 2

Поскольку я имею дело с большими данными, есть ли более эффективный способ делаете это?

...