Добавить новый столбец в строку в Pandas groupby - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь сгруппировать свой фрейм данных по идентификатору пользователя и итерировать его по каждому сеансу пользователя, затем добавить новый столбец к каждому сеансу (строка в фрейме данных), 0 или 1 зависит от условия, и загрузить все данные (без группировки) в новый файл CSV. Но получил ошибку.

IndexError: индекс 10243 выходит за пределы оси 0 с размером 25

Мой код:

csv_input = pd.read_csv('sm_data.csv', ';')
is_zero_session = []
for user_index, user_group in csv_input.groupby('browserData.userID', as_index=False):
    prev_in_loop = None
    for session_index, session in user_group.iterrows():
        dt = datetime.datetime.fromtimestamp(session[23]).isoformat()
        dt = datetime.datetime.strptime(dt, '%Y-%m-%dT%H:%M:%S')
        if prev_in_loop is not None:
            if (dt - prev_in_loop).seconds == 0:
                csv_input.insert(session_index, 'is_zero_session', 1)
            else:
                csv_input.insert(session_index, 'is_zero_session', 0)
        else:
            csv_input.insert(session_index, 'is_zero_session', 0)
        prev_in_loop = dt
csv_input['is_zero_session'] = is_zero_session
csv_input.to_csv('sm_data_zero_sessions.csv', sep=';', encoding='utf-8')

Мой пример данных:

;_id;browserData.cookieEnabled;browserData.firstSession;browserData.isFirstSession;browserData.languagesCount;browserData.mimeTypes;browserData.navigatorVendor;browserData.platform;browserData.pluginsCount;browserData.prevSession;browserData.productName;browserData.queryParams.0;browserData.queryParams.1;browserData.referrer;browserData.targetDomain;browserData.userAgent;browserData.userID;browserData.webDriver;serverData.noScript;serverData.userAgent;serverData.userCookies;serverData.userIp;serverData.userReferrer;sessionDate;sessionId;is_bot_status
0;5e1c862e0ccf197e0bb0482a;True;1578927662.0;True;4.0;0.0;Google Inc.;Linux aarch64;0.0;1578927662.0;Gecko;utm_source=lime.blocked.site;utm_medium=3666779|0.2765645|20200108;cabinet.lime-zaim.ru;Mozilla/5.0 (Linux; arm_64; Android 9; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 YaBrowser/19.12.1.121.00 Mobile Safari/537.36;41393731-945b-4ec3-89ec-dc3b998eb3a5;False;Mozilla/5.0 (Linux; arm_64; Android 9; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 YaBrowser/19.12.1.121.00 Mobile Safari/537.36;{  };178.34.161.101;https://creditjoy.ru/results/lime?utm_source=lime.blocked.site&utm_medium=3666779|0.2765645|20200108;1578927662;2e0736c8-8fce-4057-a6bd-c8d9146dc595;0
1;5e1c863bdfb6b2b567d6c778;True;1578927675.0;True;4.0;0.0;Google Inc.;Linux armv8l;0.0;1578927675.0;Gecko;creditjoy.ru;Mozilla/5.0 (Linux; Android 9; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36;aed6a2cf-c8d8-4346-bd27-db6b36f422b1;False;Mozilla/5.0 (Linux; Android 9; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36;{  };85.140.4.13;https://creditjoy.ru/go/ffc7726c-f110-4a2d-a271-e9ac40313011;1578927675;744fc0a7-bfbe-47c8-8815-1b3451e4bcda;0
2;5e1c8649458f1a5883d6db29;True;1578927689.0;True;1.0;0.0;Apple Computer, Inc.;iPhone;0.0;1578927689.0;Gecko;utm_source=lime.blocked.site;utm_medium=1222847|0|20200113;cabinet.lime-zaim.ru;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Mobile/15E148 Safari/604.1;85643f44-8c93-4207-ab57-34d14b2ba651;False;False;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Mobile/15E148 Safari/604.1;{  };94.25.174.100;https://creditjoy.ru/;1578927689;f1184559-a8a2-45b7-b17e-78f7b68343ed;0
3;5e1c864acdc167e5f5e2e55d;True;1578927690.0;True;2.0;9.0;Google Inc.;Win32;5.0;1578927690.0;Gecko;utm_source=konga.blocked.site;utm_medium=1292099|0.02499068|20200113;cabinet.konga.ru;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.320 Yowser/2.5 Safari/537.36;dc9bd672-a04d-4c17-aa07-3113645d0f61;False;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.320 Yowser/2.5 Safari/537.36;{  };37.29.40.57;https://creditjoy.ru/results/konga?utm_source=konga.blocked.site&utm_medium=1292099|0.02499068|20200113;1578927690;b3f645bc-92c6-42db-aba6-2ca1ac40d0c9;0
4;5e1c865469dd649b8fd98d9e;True;1578927675.0;False;4.0;0.0;Google Inc.;Linux armv8l;0.0;1578927675.0;Gecko;creditjoy.ru;Mozilla/5.0 (Linux; Android 9; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36;aed6a2cf-c8d8-4346-bd27-db6b36f422b1;False;Mozilla/5.0 (Linux; Android 9; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36;{  };85.140.4.13;https://creditjoy.ru/go/e241b708-ee3e-4b55-bcba-bc898bbab799;1578927700;1d42d936-1e74-4e75-8528-2e31c18fe39a;0
5;5e1c865fdfb6b2b567d6c779;True;1578927690.0;False;2.0;9.0;Google Inc.;Win32;5.0;1578927690.0;Gecko;creditjoy.ru;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.320 Yowser/2.5 Safari/537.36;dc9bd672-a04d-4c17-aa07-3113645d0f61;False;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 YaBrowser/19.12.3.320 Yowser/2.5 Safari/537.36;{  };37.29.40.57;https://creditjoy.ru/go/c7e65b52-db79-4240-abb6-27353d58d452;1578927711;7e2774b1-f6ae-4d1f-9f0d-746379af764b;0
6;5e1c86634f2e3db798f6d1bf;True;1578927715.0;True;4.0;0.0;Google Inc.;Linux armv8l;0.0;1578927715.0;Gecko;utm_source=lime.blocked.site;utm_medium=3063107%7C0.6145995%7C20191204;cabinet.lime-zaim.ru;Mozilla/5.0 (Linux; Android 8.0.0; SM-G930F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36;5b171e87-212e-4c9f-a7c9-a39ac84808b6;False;Mozilla/5.0 (Linux; Android 8.0.0; SM-G930F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36;{  };178.176.165.219;https://creditjoy.ru/results/lime?utm_source=lime.blocked.site&utm_medium=3063107%7C0.6145995%7C20191204;1578927715;c4d61f02-a049-45c7-add8-701ab71d9096;0
7;5e1c8669cdc167e5f5e2e55e;True;1578927721.0;True;4.0;2.0;Win32;1.0;1578927721.0;Gecko;utm_source=konga.blocked.site;utm_medium=807071|0|20200113;cabinet.konga.ru;Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0;c3012df3-7649-48fc-b576-6fe3056a8d64;False;False;Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0;{  };217.175.11.223;https://creditjoy.ru/results/konga?utm_source=konga.blocked.site&utm_medium=807071|0|20200113;1578927721;78b7264f-4756-468c-8699-34c1b029dfb1;0
8;5e1c866e0ccf197e0bb0482b;True;1578927725.0;True;1.0;0.0;Apple Computer, Inc.;iPhone;0.0;1578927725.0;Gecko;utm_source=lime.blocked.sms;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Mobile/15E148 Safari/604.1;621c9de7-ea86-4703-849c-74a15cdc641b;False;False;Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Mobile/15E148 Safari/604.1;{  };109.197.204.92;https://creditjoy.ru/;1578927726;1e8ca2bf-01fa-4491-9513-f2d8cbaf33f2;0
9;5e1c86735a10b4df2729d1fb;True;1578927731.0;True;4.0;0.0;Google Inc.;Linux armv7l;0.0;1578927731.0;Gecko;utm_source=lime.blocked.site;utm_medium=4095508|0.1009313|20200111;cabinet.lime-zaim.ru;Mozilla/5.0 (Linux; Android 8.0.0; FIG-LX1 Build/HUAWEIFIG-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36;510fd9a0-53dd-44b7-8bea-e1f9c95dd22a;False;Mozilla/5.0 (Linux; Android 8.0.0; FIG-LX1 Build/HUAWEIFIG-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36;{  };213.234.251.141;https://creditjoy.ru/results/lime?utm_source=lime.blocked.site&utm_medium=4095508%7C0.1009313%7C20200111;1578927731;41dd5a71-2254-4235-b046-19a5894fd810;0
10;5e1c868a69dd649b8fd98d9f;True;1578927595.0;False;4.0;4.0;Google Inc.;Win32;3.0;1578927595.0;Gecko;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36;5232fbdb-beb7-48f1-8518-2b64a82e411b;False;Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36;{  };213.247.198.140;https://creditjoy.ru/results/konga?utm_source=konga.blocked.site&utm_medium=490763|0.5122826|20191225;1578927754;03fe45d8-fceb-491d-a0d4-24328d14805c;0

У меня есть 16659 строк в моем df

Мне нужно сгруппировать данные строк (не сгруппированные) по 'browserData.userID', получить все сеансы для каждой группы (пользователя), отсчитайте время между и добавьте к каждому сеансу 0 или 1 по условию и сохраните несгруппированные данные в файл. Я новичок ie в Pandas, что я делаю не так?

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