#python #pandas #plotly-dash
#python #pandas #plotly-dash
Вопрос:
У меня есть база данных продаж агентов по недвижимости. Продажи зачисляются на их идентификатор продавца (NRDS #). Некоторые продажи будут иметь одинаковый номер NRDS, поскольку агенты могут иметь обе стороны транзакции.
Я могу подсчитать продажи для каждой категории (listagent / buyersagent), используя эти строки кода:
dataListYTDBuyer = dataYTD.groupby('buyersagent')['buyersagent'].count().reset_index(name="count") dataListYTDBuyer = dataListYTDBuyer.sort_values('count', ascending=False)
dataListYTDList = dataYTD.groupby('listagent')['listagent'].count().reset_index(name="count") dataListYTDList = dataListYTDList.sort_values('count', ascending=False)
Это приводит к:
buyersagent count_x listagent count_y
0 635504004 1530 635504004.0 105.0
1 230010894 166 230010894.0 94.0
2 230018849 148 230018849.0 21.0
3 230015231 144 230015231.0 141.0
4 230014480 140 230014480.0 101.0
.. ... ... ... ...
94 230003099 16 230003099.0 61.0
95 230010244 16 230010244.0 21.0
96 230018166 16 NaN NaN
97 230016463 16 230016463.0 2.0
98 230016335 16 230016335.0 42.0
Я застрял на том, как добавить и упорядочить общее количество продаж (NaN заключается в том, что продавец не перечислил ни одного дома). Я пытался:
sum_sales = dataListYTDList['count'] dataListYTDBuyer['count']
Но это, конечно, не (я не думаю), добавляя соответствующий набор чисел вместе (то есть суммируя продажи каждого продавца). Любой совет приветствуется!
Ответ №1:
Итак, показываемый вами фрейм данных — это не один, а два фрейма? И что вы хотите сделать, это суммировать количество продаж по идентификатору агента, независимо от того, является ли он агентом по покупке или продаже?
Если я правильно понял, то вы можете объединить два фрейма данных по идентификаторам, а затем вы можете суммировать количество продаж.
df_merged = pandas.merge(
dataListYTDList,
dataListYTDBuyer,
left_on='buyersagent',
right_on='listagent')
df_merged['total_sales'] = df_merged['count_x'].add(df_merged['count_y'])
Я думаю, что это должно сработать.