Как перебрать огромный фрейм данных и создать Userobjects? - PullRequest
0 голосов
/ 02 февраля 2019

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

userId  eventTime   eventType   groupId gender  
0   35  1   1   A   m   
1   35  1   2   A   m   
2   35  1   1   A   m   

Чтобы получить соответствующие метрики, которые я хочу проанализировать, я создал объект Userobject, подобный этому.

  class User:
        userId: int
        gender: int
        groupId: int
        value1: float
        value2: float

Я могу применить и заполнить этот объект в следующем.Мой фрейм данных, содержащий список событий, как показано выше, называется Data_mod:

user0 = User() 
user0.userId = Data_mod.iloc[0]['userId']
user0.gender = Data_mod.iloc[user0.userId]['gender'] 
user0.groupId = Data_mod.iloc[user0.userId]['groupId'] 
user0.value1 = Data_mod[(Data_mod["userId"] == user0.userId) & (Data_mod["eventType"] == 1)]['eventTime'].sum()
user0.value2 = Data_mod[(Data_mod["userId"] == user0.userId) & (Data_mod["eventType"] == 2)]['eventTime'].sum()

Как теперь я могу выполнить итерацию по всем userIds в Dataframe Data_mod и построить такой пользовательский объект для каждого UserId, который у меня есть в этом фрейме данных?

Я не знаю, как это сделать в цикле.моя цель, конечно, иметь такие объекты, как:

user0
user1
user2
user3

Конечно, итерация по фрейму данных может начинаться так:

for index, row in Data_mod.iterrows():

Но как я могу адресовать эти объекты в цикле?Мне нужно иметь такое именование

user<row_number> = User()

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

Может ли кто-нибудь дать мне подсказку, как выполнить итерацию по этому виду использования объекта?Буду очень признателен за вашу помощь.

С уважением, Джон

...