Раздражающий вывод терминала - PullRequest
0 голосов
/ 12 июня 2019

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

Выписка из функции:

import fuzzywuzzy as fuzz

if 'leven_dist_N' not in self.clust_df.columns:
    self.clust_df['leven_dist_N'], self.clust_df['leven_dist_NA'] = zip(
        *self.clust_df.apply(self.calcMatchRatio, axis=1))

Применить функцию:

 def calcMatchRatio(self, row):

        if pd.notnull(row.src_name_short) and pd.notnull(row.reg_name_short):
            if pd.notnull(row.src_address_adj) and pd.notnull(row.reg_address_adj):
                return int(fuzz.ratio(row.src_name_short, row.reg_name_short)), int(fuzz.ratio(row.src_joinfields, row.reg_joinfields))
            else:
                return int(fuzz.ratio(row.src_name_short, row.reg_name_short)), int(0)

При срабатывании первого оператора возврата в calcMatchRatio результат выводится на консоль без дальнейшего перехода по коду.

Значения в объекте - это просто строки, содержащие названия компаний. Пример вывода терминала:

(«Больница Челси амп и Вестминстер и Королевский Марсден нфтс», '')

(Больница "Челси амп", Вестминстер и королевская гавань Марсдена ярд лондон sw10 0xd англия ',' ')

Строка fuzz.ratio вычисляет расстояние Левенштейна (целое число) между двумя строками в каждом кортеже, но строки по-прежнему печатаются.

Когда я запускал отдельный экземпляр Python:

python3

импорт fuzzywuzzy as fuzz

fuzz.ratio ('lalala', 'lololo')

Выходы

('лалала', 'лололо')

60

Так что я думаю, что проблема связана с пакетом fuzzywuzzy - я действительно не хочу возиться с кодом там, но я, кажется, помню, прежде чем использовать комбинацию множественного применения и zip (пре-рефакторинг), не было такой терминальный спам.

...