Итак, по сути, у меня есть df, назовем его Auctiondf, который может содержать много «аукционов»
У меня также есть файл отслеживания, содержащий предметы/аукционы, которые я хочу отслеживать с определенными критериями поиска.
В файле отслеживания всегда будет заполнено ItemId (обязательно), однако остальные поля не являются обязательными для заполнения.
Если заполнен только ItemId в trackDF, то я хочу найти все аукционы /items из аукционаDF с этим ItemId независимо от других «столбцов»
Если, однако, какое-либо из других полей было заполнено, эти критерии также должны соответствовать, например Realmname, Stat[x] и buyoutgold
От stat0 до stat4 может быть 5 статов, порядок меня не волнует, поэтому, если возможно, было бы неплохо, чтобы "поиску" было все равно о порядке.
допустим, ItemId должен быть 15331, и я ввел +3 к выносливости в Stat0 и +3 к ловкости в Stat1, тогда все в порядке, он находит результаты на AuctionDF, где ItemId — 15331, Stat0 – +3 к ловкости, а Stat 1 — +3 к выносливости, если соблюдается критерий Stat[x].
auctionDF['Buyout'], конечно, не может превысить сумма в столбце trackdf['buyoutgold']; однако, если она пуста, значение аукционаDF['Buyout'] может быть любым
Я надеюсь, что вышеизложенное имеет смысл, и если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать
import polars as pl
auctiondata = {"ItemId": [15331, 15332, 15333, 15213, 15331, 15213],
"AuctionId": [2084868458, 2085008809, 2087827052, 2087835700, 2087827999, 2087827997],
"RealmName": ['Gehennas', 'Gehennas', 'Mograine', 'Lakeshire', 'Gehennas', 'Bloodfang'],
"Stat0": ['+3 Stamina', '+2 Intelelct', '+3 Stamina', '+3 Agility', '+3 Stamina', '+3 Stamina'],
"Stat1": ['+3 Agility', '+3 Stamina', '+3 Intellect', '+3 Stamina', '+3 Agility', '+3 Agility'],
"Stat2": ['', '', '', '','',''],
"Stat3": ['', '', '', '','',''],
"Stat4": ['', '', '', '','',''],
"buyoutgold": ['40', '', '', '', '120','']}
trackingdata = {"ItemId": [15331, 15213, 15333],
"RealmName": ['Gehennas', '', 'Mograine'],
"Stat0": ['+3 Stamina', '+3 Stamina', '+3 Stamina'],
"Stat1": ['+3 Agility', '+3 Agility', '+3 Intellect'],
"Stat2": ['', '', ''],
"Stat3": ['', '', ''],
"Stat4": ['', '', ''],
"buyoutgold": ['50', '', '']}
resultdata = {"ItemId": [15331, 15333, 15213, 15213],
"AuctionId": [2084868458, 2087827052, 2087835700, 2087827997],
"RealmName": ['Gehennas', 'Mograine', 'Lakeshire', 'Bloodfang'],
"Stat0": ['+3 Stamina', '+3 Stamina', '+3 Agility', '+3 Stamina'],
"Stat1": ['+3 Agility', '+3 Intellect', '+3 Stamina', '+3 Agility'],
"Stat2": ['', '', '', ''],
"Stat3": ['', '', '', ''],
"Stat4": ['', '', '', ''],
"buyoutgold": ['40', '', '', '']}
auctiondf = pl.DataFrame(auctiondata)
print(auctiondf)
trackingdf = pl.DataFrame(trackingdata)
print(trackingdf)
resultdf = pl.DataFrame(resultdata)
print(resultdf)
Подробнее здесь: https://stackoverflow.com/questions/734 ... dataframes