Pandas Dataframe запрос не находит значения - PullRequest
0 голосов
/ 05 октября 2019

У меня проблема, из-за которой я не могу понять, почему искомое значение не существует в фрейме данных.

Я начал с объединения пары числовых столбцов в моем исходном кадре данных и присвоения новому столбцу. А затем я извлек список уникальных значений из этого объединенного столбца

~snip

    self.df['Flitch'] = self.df['Blast'].map(
                str) + "-" + self.df['Bench'].map(str)

    self.flitches = self.df['Flitch'].unique()

~snip

Теперь немного дальше в коде мне нужно получить самые ранние значения даты, соответствующие этим уникальным идентификаторам. Поэтому я иду и запускаю запрос к фрейму данных:

~snip

def get_dates(self):
        '''Extracts mining and loading dates from filtered dataframe'''

        loading_date, mining_date = [],[]

        #loop through all unique flitch ids and get their mining
        #and loading dates

        for flitch in self.flitches:

            temp = self.df.query('Activity=="MINE"')
            temp = temp.query(f'Flitch=={flitch}')
            mining = temp['PeriodStartDate'].min()
            mining_date.append(mining)   

~snip

... и ничего не получаю. Я не могу понять почему. Я имею в виду, я сравниваю данные, извлеченные из столбца, с этим же столбцом, и я не получаю никаких совпадений.

Я проверил и вручную проверил, что список уникальных идентификаторов заполнен правильно.

Я проверил, что у фрейма данных, на котором я выполняю запрос, действительно есть те же идентификаторы сбоя.

Я вручную проверил несколько случайных значений из списка self.flitches, и он возвращаетсякак False каждый раз.

До того, как я объединил эти два столбца и использовал только Blast в качестве идентификатора, все работало отлично, но теперь я не уверен, что происходит.

Вот, например, я напечатал список self.flitches:

['5252-528' '5251-528' '3030-492' '8235-516' '7252-488' '7251-488'
 '2351-588' '5436-588' '1130-624' '5233-468' '1790-516' '6301-552'
 '6302-552' '5444-576' '2377-564' '2380-552' '2375-564' '5253-528'
 '2040-468' '2378-564' '1132-624' '1131-624' '6314-540' '7254-488'
 '7253-488' '8141-480' '7250-488']

А вот данные из столбца self.df['Flitch']:

173     5252-528
174     5251-528
175     5251-528
176     5251-528
177     5251-528
178     5251-528
180     3030-492
181     3030-492
182     3030-492
183     3030-492
...

Похоже, они должны совпадать, ноони не ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...