Я новичок в Python и играю с интересным набором данных, чтобы помочь мне в обучении, в частности, чтобы лучше понять панд и numpy.
Мой фрейм данных содержит более миллиона строк, и я пытаюсь создать пользовательский сегмент, чтобы найти более интересные идеи.Мой набор данных выглядит следующим образом:
My DataTable:
Price Postal_area Purchase_Month
123000 SE22 2018_01
240000 GU22 2017_02
.
.
.
Я хочу сгруппировать данные в ценовые сегменты <100000, 200k - 300k, 300k - 500k, 500k + Я хочу затемсгруппировать по ценовым сегментам, месяцам и почтовым площадям.Я зашла в тупик при создании пользовательского ценового сегмента.</p>
Я пытался создать собственную функцию:
def price_range(Price):
if (Price <= 100000):
return ("Low Value")
elif (100000 < Price < 200000):
return ("Medium Value")
elif (200001 < Price < 500000):
return ("Medium High")
elif (Price > 500001):
return ("High")
else:
return ("Undefined")
И затем я создаю новый столбец в моем наборе данных следующим образом:
for val in (my_table.Price):
my_table["price_range"] = (price_range(val))
Я должен быть в состоянии создать агг из этого, но это чрезвычайно медленный процесс - уже работает более 30 минут на миллион илитак грести и еще бегать!
Я пытался поиграть с созданием пользовательских блоков данных с использованием numpy и pandas (сводная таблица, groupby, lambdas), но не смог выяснить, как включить пользовательскую логику сегментов.
Я посмотрел на несколько других ответов, таких как приведенный ниже, но он не охватывал мои особые пользовательские потребности: Эффективный способ присвоения значений из другого столбца pandas df
Любая помощь очень ценится!