Проблема заключается в точном обновлении совокупной частоты приобретения собственности игроком в каждой игре и расчете р ⇐ Python
Проблема заключается в точном обновлении совокупной частоты приобретения собственности игроком в каждой игре и расчете р
property_acquisition_pattern = r"(Celebfin|Angelll|antoleu85|SHE3Pj|boardgamelife|ammegapro|Thauri|Jehle|computer82|bjarnimari|EaglePervik|MaxCostello|BillyJoBob|Pelé-BRU|WTD69|Gersow|VitelNet|tukky_galaxy|contedelsagrato| Богдарин| Katrien79|jorgeanchovy|10 июля|vegaorion|Buxpb|settebello|Kg1239|animalonthedrums|TenaciousDFence|TheLoser|Stoemper|Стран Ник|Рикс|10 июля) (проходит и платит|выигрывает раунд и платит) (\d+) k$ за имущество (\d+)"
текущий_номер_игры = 1 player_property_values = {} player_final_outcomes = {} game_rankings_property = {} game_rankings_outcome = {}
property_bids = {} property_frequency = {}
pass_and_pay_pattern = r"(\w+) передает и платит (\d+) тыс. долларов за имущество (\d+)" win_round_pattern = r"(\w+) выигрывает раунд и платит (\d+) тыс. долларов за имущество (\d+)"
player_name = "Celebfin"
для индекса, строка в df.iterrows(): gamelog = row['gamelog'] game_lines = gamelog.split('\n')
если текущий_номер_игры не указан в player_property_values: player_property_values[current_game_number] = {} player_final_outcomes[current_game_number] = {}
current_game_properties = {} current_game_outcomes = {}
для строки в game_lines: property_acquisition_match = re.search(property_acquisition_pattern, line)
если property_acquisition_match: игрок, _, значение, номер_свойства = свойство_acquisition_match.groups() значение = целое число (значение) номер_свойства = int(номер_свойства)
if player == player_name:
если номер свойства_номер не указан в свойстве_биды: property_bids[property_number] = [значение] еще: property_bids[property_number].append(значение)
Сохранять частоты объектов недвижимости для Celebfin если номер_свойства не указан в параметре property_frequency: property_frequency[property_number] = 1 еще: property_frequency[property_number] += 1
Используйте частоту вместо средней ставки. частота = частота_свойства[номер_свойства] значение = частота
если игрока нет в current_game_properties: current_game_properties[player] = {}
current_game_properties[игрок][номер_свойства] = значение
если в строке «имеет» и в строке «итого»: result_match = re.search(r"(Celebfin|Angèlll|antoleu85|SHE3Pj|boardgamelife|ammegapro|Thauri|Jehle|computer82|bjarnimari|EaglePervik|MaxCostello|BillyJoBob|Pelé-BRU|WTD69|Gersow|VitelNet|tukky_galaxy|contedelsagrato|Богдарин |Katrien79|jorgeanchovy|10 июля|vegaorion|Buxpb|settebello|Kg1239|animalonthedrums|TenaciousDFence|TheLoser|Stoemper|Стран Ник|Rix|10 июля) имеет (\d+) k$ монет и (\d+) k$ валюты карты на общую сумму (\d+)k$", линия)
если result_match: игрок, _, _, результат = result_match.groups() результат = int(результат) current_game_outcomes[игрок] = результат
для игрока, свойства в current_game_properties.items(): если игрока нет в player_property_values[current_game_number]: player_property_values[current_game_number][игрок] = 0
player_property_values[current_game_number][player] += sum(properties.values())
для игрока, результат в current_game_outcomes.items(): если игрока нет в player_final_outcomes[current_game_number]: player_final_outcomes[current_game_number][игрок] = 0
player_final_outcomes[current_game_number][игрок] += результат
если в журнале игры написано «Конец игры»: текущий_номер_игры += 1
Замените свойства в каждой игре соответствующими частотами для Celebfin. для game_number, player_values в player_property_values.items(): для игрока свойства в player_values.items(): if isinstance(properties, dict): # Проверяем, являются ли свойства словарем обновленные_свойства = установить() для property_number, частота в Properties.items(): update_properties.add(частота_свойства[номер_свойства] * частота) player_property_values[game_number][игрок] = сумма(обновленные_свойства) Рассчитать рейтинг для каждой игры на основе значений частоты. для game_number, player_values в player_property_values.items(): Ranked_players = sorted(player_values, key=player_values.get,verse=True) game_rankings_property[game_number] = рейтинговые_игроки
Я работаю над сценарием Python, использующим Pandas, для расчета совокупной частоты значений свойств в наборе данных игрового журнала. Набор данных включает в себя информацию об игроках, приобретении собственности и результатах в нескольких играх. Я хочу учитывать как предыдущие, так и последующие игры при расчете совокупных частот игрока "celebfin".
Текущая реализация использует совокупные частоты только для предыдущих игр, что приводит к неправильному рейтингу игрока по имени Celebfin. Проблема особенно наблюдается в рейтингах на основе частоты, где совокупные частоты не обновляются должным образом после каждой игры.
Я поделился текущим кодом и результатами, и мне нужна помощь в изменении кода, чтобы правильно учитывать совокупные частоты для Celebfin во всех играх. Мы будем очень признательны за любые идеи или предложения по решению этой проблемы.
property_acquisition_pattern = r"(Celebfin|Angelll|antoleu85|SHE3Pj|boardgamelife|ammegapro|Thauri|Jehle|computer82|bjarnimari|EaglePervik|MaxCostello|BillyJoBob|Pelé-BRU|WTD69|Gersow|VitelNet|tukky_galaxy|contedelsagrato| Богдарин| Katrien79|jorgeanchovy|10 июля|vegaorion|Buxpb|settebello|Kg1239|animalonthedrums|TenaciousDFence|TheLoser|Stoemper|Стран Ник|Рикс|10 июля) (проходит и платит|выигрывает раунд и платит) (\d+) k$ за имущество (\d+)"
текущий_номер_игры = 1 player_property_values = {} player_final_outcomes = {} game_rankings_property = {} game_rankings_outcome = {}
property_bids = {} property_frequency = {}
pass_and_pay_pattern = r"(\w+) передает и платит (\d+) тыс. долларов за имущество (\d+)" win_round_pattern = r"(\w+) выигрывает раунд и платит (\d+) тыс. долларов за имущество (\d+)"
player_name = "Celebfin"
для индекса, строка в df.iterrows(): gamelog = row['gamelog'] game_lines = gamelog.split('\n')
если текущий_номер_игры не указан в player_property_values: player_property_values[current_game_number] = {} player_final_outcomes[current_game_number] = {}
current_game_properties = {} current_game_outcomes = {}
для строки в game_lines: property_acquisition_match = re.search(property_acquisition_pattern, line)
если property_acquisition_match: игрок, _, значение, номер_свойства = свойство_acquisition_match.groups() значение = целое число (значение) номер_свойства = int(номер_свойства)
if player == player_name:
если номер свойства_номер не указан в свойстве_биды: property_bids[property_number] = [значение] еще: property_bids[property_number].append(значение)
Сохранять частоты объектов недвижимости для Celebfin если номер_свойства не указан в параметре property_frequency: property_frequency[property_number] = 1 еще: property_frequency[property_number] += 1
Используйте частоту вместо средней ставки. частота = частота_свойства[номер_свойства] значение = частота
если игрока нет в current_game_properties: current_game_properties[player] = {}
current_game_properties[игрок][номер_свойства] = значение
если в строке «имеет» и в строке «итого»: result_match = re.search(r"(Celebfin|Angèlll|antoleu85|SHE3Pj|boardgamelife|ammegapro|Thauri|Jehle|computer82|bjarnimari|EaglePervik|MaxCostello|BillyJoBob|Pelé-BRU|WTD69|Gersow|VitelNet|tukky_galaxy|contedelsagrato|Богдарин |Katrien79|jorgeanchovy|10 июля|vegaorion|Buxpb|settebello|Kg1239|animalonthedrums|TenaciousDFence|TheLoser|Stoemper|Стран Ник|Rix|10 июля) имеет (\d+) k$ монет и (\d+) k$ валюты карты на общую сумму (\d+)k$", линия)
если result_match: игрок, _, _, результат = result_match.groups() результат = int(результат) current_game_outcomes[игрок] = результат
для игрока, свойства в current_game_properties.items(): если игрока нет в player_property_values[current_game_number]: player_property_values[current_game_number][игрок] = 0
player_property_values[current_game_number][player] += sum(properties.values())
для игрока, результат в current_game_outcomes.items(): если игрока нет в player_final_outcomes[current_game_number]: player_final_outcomes[current_game_number][игрок] = 0
player_final_outcomes[current_game_number][игрок] += результат
если в журнале игры написано «Конец игры»: текущий_номер_игры += 1
Замените свойства в каждой игре соответствующими частотами для Celebfin. для game_number, player_values в player_property_values.items(): для игрока свойства в player_values.items(): if isinstance(properties, dict): # Проверяем, являются ли свойства словарем обновленные_свойства = установить() для property_number, частота в Properties.items(): update_properties.add(частота_свойства[номер_свойства] * частота) player_property_values[game_number][игрок] = сумма(обновленные_свойства) Рассчитать рейтинг для каждой игры на основе значений частоты. для game_number, player_values в player_property_values.items(): Ranked_players = sorted(player_values, key=player_values.get,verse=True) game_rankings_property[game_number] = рейтинговые_игроки
Я работаю над сценарием Python, использующим Pandas, для расчета совокупной частоты значений свойств в наборе данных игрового журнала. Набор данных включает в себя информацию об игроках, приобретении собственности и результатах в нескольких играх. Я хочу учитывать как предыдущие, так и последующие игры при расчете совокупных частот игрока "celebfin".
Текущая реализация использует совокупные частоты только для предыдущих игр, что приводит к неправильному рейтингу игрока по имени Celebfin. Проблема особенно наблюдается в рейтингах на основе частоты, где совокупные частоты не обновляются должным образом после каждой игры.
Я поделился текущим кодом и результатами, и мне нужна помощь в изменении кода, чтобы правильно учитывать совокупные частоты для Celebfin во всех играх. Мы будем очень признательны за любые идеи или предложения по решению этой проблемы.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Исключение паники при расчете совокупной оценки для каждой группы в полярах
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как переопределить вращение сплайна для автомобиля, управляемого игроком, в гоночной игре?
Anonymous » » в форуме C# - 0 Ответы
- 54 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как переопределить ротацию сплайна для управляемого игроком автомобиля в гоночной игре?
Anonymous » » в форуме C# - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как переопределить ротацию сплайна для управляемого игроком автомобиля в гоночной игре?
Anonymous » » в форуме C# - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-