В настоящее время я сталкиваюсь с проблемой анализа огромного фрейма данных с такой структурой
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()
, а затем попытаться выполнить их анализ и оценить содержащиеся в них значения, агрегируя и выполняя операции над ними.
Может ли кто-нибудь дать мне подсказку, как выполнить итерацию по этому виду использования объекта?Буду очень признателен за вашу помощь.
С уважением, Джон