В настоящее время я работаю над некоторым кодом Python, где я пытаюсь получить подмножество DataFrame, где значение столбца равно определенному значению.Я делаю это так:
for i in brands.index:
current_brand = brands.get_value(i, 'Car Brand')
my_dataframe_subset = my_dataframe[my_dataframe['Brand'] == current_brand]
Это, конечно, работает при создании подмножества, но я делаю это непрерывно в цикле, тысячи раз.Я обнаружил, что это огромное узкое место в моей скорости выполнения, но, к сожалению, «current_brand
» меняет каждую итерацию цикла, поэтому я не вижу другого пути.Есть ли более быстрая альтернатива получению этого подмножества, которое не вызвало бы такой огромной задержки?
Спасибо
РЕДАКТИРОВАТЬ : Это более реалистичный пример того, что делает мой код.Очевидно, что данные бессмысленны, но я надеюсь, что вы поняли:
------------------------
|Person | Car Brand |
|------------------------
|'dave' | 'Toyota' |
|'mike' | 'Ford' |
|'sally'| 'Ford' |
|'doug' | 'BMW' |
------------------------
my_list = []
for i in brands.index:
current_person = brands.get_value(i, 'Person')
current_brand = brands.get_value(i, 'Car Brand')
my_dataframe_subset = my_dataframe[my_dataframe['Brand'] == current_brand]
for i_b in my_dataframe_subset.index:
#do stuff with current_person and current_brand
car_colour = my_dataframe_subset(i_b, 'Colour')
car_speed = my_dataframe_subset(i_b, 'Speeds')
my_dict = {'person': current_person, 'brand': current_brand, 'colour': car_colour, 'speed': car_speed}
my_list.append(my_dict)