#python #pandas
#python #pandas
Вопрос:
У меня есть таблица со столбцом для идентификатора участника и столбцом для даты окончания недели, которая выглядит примерно так:
actor_id week_end_date
1 11 14/01/2020
2 12 21/01/2020
3 13 14/01/2020
4 14 28/01/2020
У меня также есть другая таблица поиска, которая выглядит следующим образом:
01/01/2020 07/01/2020 14/01/2020 21/01/2020 28/01/2020
11 0.8 0.8 0.95 0.66 0.9
12 0.9 0.6 0.55 0.56 0.88
13 1.0 0.4 0.66 null 0.67
14 0.5 0.2 null 0.8 0.45
Значения идентификаторов в первой таблице соответствуют индексу во второй таблице, а столбец даты окончания недели в первой таблице соответствует заголовкам столбцов во второй. Я хочу создать новый столбец в первой таблице, который соответствует столбцу идентификатора индексу, а столбцу даты — заголовку столбца, чтобы получить доступ к значению оценки. Например, если значение идентификатора равно 13, а дата равна 14/01/2020, тогда значение должно быть 0,66.
Результат должен выглядеть так:
actor_id week_end_date score
1 11 14/01/2020 0.95
2 12 21/01/2020 0.56
3 13 14/01/2020 0.66
4 14 28/01/2020 0.45
Я выполнил следующее, но получаю сообщение об ошибке, когда строки не отображаются во второй таблице
table1['score'] = table2.lookup(table1.actor_id, table1.week_end_date)
KeyError: 'One or more column labels was not found'
Вот данные для таблицы 2:
{'2020-09-18': {100000151529577: 0.7884615384615381,
100000168029563: 0.9047619047619041,
100000217919567: 1.0},
'2020-09-25': {100000151529577: 0.8685897435897432,
100000168029563: 0.9023809523809521,
100000217919567: 1.0},
'2020-10-02': {100000151529577: 0.8636126745882837,
100000168029563: 0.899459642012833,
100000217919567: 1.0},
'2020-10-09': {100000151529577: 0.9070984680740773,
100000168029563: 0.9079498598053762,
100000217919567: nan},
'2020-10-16': {100000151529577: 0.8796030343796227,
100000168029563: 0.9087264428400236,
100000217919567: nan},
'2020-10-23': {100000151529577: 0.9062535083532426,
100000168029563: 0.9298645190811586,
100000217919567: nan},
'2020-10-30': {100000151529577: 0.9241415262412603,
100000168029563: 0.9470803179346093,
100000217919567: nan},
'2020-11-06': {100000151529577: 0.9206960425319156,
100000168029563: 0.9373835471065347,
100000217919567: nan},
'2020-11-13': {100000151529577: 0.9331921449951585,
100000168029563: 0.9092228036424824,
100000217919567: nan}}
Вот данные для таблицы 1:
{'actor_id_intial_review': {13136: 100000217919567,
36458: 100000217919567,
44911: 100000217919567,
46438: 100000217919567,
81365: 100000217919567,
85164: 100000217919567,
90500: 100000217919567,
90615: 100000217919567,
96797: 100000217919567,
117933: 100000217919567,
122622: 100000217919567,
134176: 100000217919567,
136793: 100000217919567,
141525: 100000217919567,
170583: 100000217919567,
173947: 100000217919567,
174717: 100000217919567,
202140: 100000217919567,
218028: 100000217919567,
246709: 100000217919567,
253509: 100000217919567,
296325: 100000217919567,
299911: 100000217919567,
305295: 100000217919567,
348334: 100000217919567,
377124: 100000217919567,
394816: 100000217919567,
442361: 100000217919567,
473015: 100000217919567,
568644: 100000217919567,
577591: 100000217919567,
580509: 100000217919567,
720516: 100000217919567,
745977: 100000217919567,
769787: 100000217919567,
778840: 100000217919567,
782353: 100000217919567,
810651: 100000217919567,
813219: 100000217919567,
826088: 100000217919567,
840808: 100000217919567,
841324: 100000217919567,
906253: 100000217919567,
909337: 100000217919567,
985510: 100000217919567,
1018408: 100000217919567,
1050752: 100000217919567,
1051113: 100000217919567,
1052263: 100000217919567,
1075794: 100000217919567,
1083932: 100000217919567,
1108915: 100000217919567,
1117019: 100000217919567,
1122138: 100000217919567,
1127150: 100000217919567,
1132493: 100000217919567,
1134987: 100000217919567,
1152049: 100000217919567,
1152106: 100000217919567,
1183398: 100000217919567,
1189886: 100000217919567,
1190308: 100000217919567,
1203364: 100000217919567,
1205628: 100000217919567,
1218831: 100000217919567,
1223462: 100000217919567,
1226553: 100000217919567,
1255579: 100000217919567,
1281205: 100000217919567,
1291587: 100000217919567,
1304344: 100000217919567,
1308887: 100000217919567,
1317417: 100000217919567,
1338837: 100000217919567,
1383861: 100000217919567,
1390182: 100000217919567,
1398967: 100000217919567,
1440998: 100000217919567,
1511552: 100000217919567,
1544349: 100000217919567,
1552965: 100000217919567,
1583477: 100000217919567,
1600032: 100000217919567,
1605280: 100000217919567,
1639079: 100000217919567,
1693180: 100000217919567,
1712713: 100000217919567,
1771492: 100000217919567,
1783085: 100000217919567,
1814725: 100000217919567,
1814823: 100000217919567,
1852084: 100000217919567,
1910314: 100000217919567,
1910485: 100000217919567,
1967600: 100000217919567,
2004368: 100000217919567,
2013439: 100000217919567,
2048851: 100000217919567,
2081665: 100000217919567,
2081803: 100000217919567,
2092362: 100000217919567,
2140335: 100000217919567,
2152391: 100000217919567,
2211613: 100000217919567,
2242767: 100000217919567,
2247293: 100000217919567,
2261948: 100000217919567,
2285583: 100000217919567,
2295521: 100000217919567,
2300441: 100000217919567,
2314442: 100000217919567,
2403792: 100000217919567,
2425970: 100000217919567,
2595653: 100000217919567,
2640928: 100000217919567,
2756237: 100000217919567,
2818931: 100000217919567,
2929998: 100000217919567},
'week_end_date': {13136: Timestamp('2020-09-25 00:00:00'),
36458: Timestamp('2020-09-18 00:00:00'),
44911: Timestamp('2020-09-25 00:00:00'),
46438: Timestamp('2020-09-18 00:00:00'),
81365: Timestamp('2020-09-18 00:00:00'),
85164: Timestamp('2020-09-18 00:00:00'),
90500: Timestamp('2020-09-25 00:00:00'),
90615: Timestamp('2020-09-25 00:00:00'),
96797: Timestamp('2020-09-18 00:00:00'),
117933: Timestamp('2020-09-25 00:00:00'),
122622: Timestamp('2020-09-25 00:00:00'),
134176: Timestamp('2020-09-18 00:00:00'),
136793: Timestamp('2020-09-18 00:00:00'),
141525: Timestamp('2020-09-18 00:00:00'),
170583: Timestamp('2020-09-18 00:00:00'),
173947: Timestamp('2020-09-18 00:00:00'),
174717: Timestamp('2020-09-18 00:00:00'),
202140: Timestamp('2020-09-18 00:00:00'),
218028: Timestamp('2020-09-18 00:00:00'),
246709: Timestamp('2020-09-18 00:00:00'),
253509: Timestamp('2020-09-18 00:00:00'),
296325: Timestamp('2020-09-18 00:00:00'),
299911: Timestamp('2020-09-18 00:00:00'),
305295: Timestamp('2020-09-25 00:00:00'),
348334: Timestamp('2020-09-18 00:00:00'),
377124: Timestamp('2020-09-25 00:00:00'),
394816: Timestamp('2020-09-18 00:00:00'),
442361: Timestamp('2020-09-25 00:00:00'),
473015: Timestamp('2020-09-18 00:00:00'),
568644: Timestamp('2020-09-25 00:00:00'),
577591: Timestamp('2020-09-25 00:00:00'),
580509: Timestamp('2020-09-18 00:00:00'),
720516: Timestamp('2020-09-18 00:00:00'),
745977: Timestamp('2020-09-18 00:00:00'),
769787: Timestamp('2020-09-18 00:00:00'),
778840: Timestamp('2020-09-18 00:00:00'),
782353: Timestamp('2020-09-18 00:00:00'),
810651: Timestamp('2020-09-18 00:00:00'),
813219: Timestamp('2020-09-18 00:00:00'),
826088: Timestamp('2020-09-18 00:00:00'),
840808: Timestamp('2020-09-25 00:00:00'),
841324: Timestamp('2020-09-18 00:00:00'),
906253: Timestamp('2020-09-18 00:00:00'),
909337: Timestamp('2020-09-18 00:00:00'),
985510: Timestamp('2020-09-25 00:00:00'),
1018408: Timestamp('2020-09-18 00:00:00'),
1050752: Timestamp('2020-09-25 00:00:00'),
1051113: Timestamp('2020-09-18 00:00:00'),
1052263: Timestamp('2020-09-18 00:00:00'),
1075794: Timestamp('2020-09-18 00:00:00'),
1083932: Timestamp('2020-09-18 00:00:00'),
1108915: Timestamp('2020-09-25 00:00:00'),
1117019: Timestamp('2020-09-18 00:00:00'),
1122138: Timestamp('2020-09-18 00:00:00'),
1127150: Timestamp('2020-09-25 00:00:00'),
1132493: Timestamp('2020-09-25 00:00:00'),
1134987: Timestamp('2020-09-25 00:00:00'),
1152049: Timestamp('2020-09-25 00:00:00'),
1152106: Timestamp('2020-09-25 00:00:00'),
1183398: Timestamp('2020-09-18 00:00:00'),
1189886: Timestamp('2020-09-25 00:00:00'),
1190308: Timestamp('2020-09-18 00:00:00'),
1203364: Timestamp('2020-09-25 00:00:00'),
1205628: Timestamp('2020-09-25 00:00:00'),
1218831: Timestamp('2020-09-18 00:00:00'),
1223462: Timestamp('2020-09-18 00:00:00'),
1226553: Timestamp('2020-09-25 00:00:00'),
1255579: Timestamp('2020-09-25 00:00:00'),
1281205: Timestamp('2020-09-18 00:00:00'),
1291587: Timestamp('2020-09-18 00:00:00'),
1304344: Timestamp('2020-09-18 00:00:00'),
1308887: Timestamp('2020-09-25 00:00:00'),
1317417: Timestamp('2020-09-25 00:00:00'),
1338837: Timestamp('2020-09-18 00:00:00'),
1383861: Timestamp('2020-09-18 00:00:00'),
1390182: Timestamp('2020-09-18 00:00:00'),
1398967: Timestamp('2020-09-18 00:00:00'),
1440998: Timestamp('2020-09-25 00:00:00'),
1511552: Timestamp('2020-09-18 00:00:00'),
1544349: Timestamp('2020-09-25 00:00:00'),
1552965: Timestamp('2020-09-18 00:00:00'),
1583477: Timestamp('2020-09-18 00:00:00'),
1600032: Timestamp('2020-09-18 00:00:00'),
1605280: Timestamp('2020-09-18 00:00:00'),
1639079: Timestamp('2020-09-18 00:00:00'),
1693180: Timestamp('2020-09-18 00:00:00'),
1712713: Timestamp('2020-09-18 00:00:00'),
1771492: Timestamp('2020-09-18 00:00:00'),
1783085: Timestamp('2020-09-18 00:00:00'),
1814725: Timestamp('2020-09-18 00:00:00'),
1814823: Timestamp('2020-09-18 00:00:00'),
1852084: Timestamp('2020-09-18 00:00:00'),
1910314: Timestamp('2020-09-25 00:00:00'),
1910485: Timestamp('2020-09-18 00:00:00'),
1967600: Timestamp('2020-09-18 00:00:00'),
2004368: Timestamp('2020-09-18 00:00:00'),
2013439: Timestamp('2020-09-18 00:00:00'),
2048851: Timestamp('2020-09-18 00:00:00'),
2081665: Timestamp('2020-09-18 00:00:00'),
2081803: Timestamp('2020-09-18 00:00:00'),
2092362: Timestamp('2020-09-18 00:00:00'),
2140335: Timestamp('2020-09-18 00:00:00'),
2152391: Timestamp('2020-09-18 00:00:00'),
2211613: Timestamp('2020-09-25 00:00:00'),
2242767: Timestamp('2020-09-18 00:00:00'),
2247293: Timestamp('2020-09-18 00:00:00'),
2261948: Timestamp('2020-09-18 00:00:00'),
2285583: Timestamp('2020-09-18 00:00:00'),
2295521: Timestamp('2020-09-18 00:00:00'),
2300441: Timestamp('2020-09-18 00:00:00'),
2314442: Timestamp('2020-09-18 00:00:00'),
2403792: Timestamp('2020-09-25 00:00:00'),
2425970: Timestamp('2020-09-18 00:00:00'),
2595653: Timestamp('2020-09-18 00:00:00'),
2640928: Timestamp('2020-09-18 00:00:00'),
2756237: Timestamp('2020-09-18 00:00:00'),
2818931: Timestamp('2020-09-18 00:00:00'),
2929998: Timestamp('2020-09-25 00:00:00')}}
Ответ №1:
Использовать pandas.unstack() и панды.Index.map—
table1.set_index(['week_end_date', 'actor_id']).index.map(table2.unstack())
Вывод
actor_id week_end_date score
1 11 14/01/2020 0.95
2 12 21/01/2020 0.56
3 13 14/01/2020 0.66
4 14 28/01/2020 0.45