Фильтрация кадра данных с использованием Sequence Matcher и других условий - PullRequest
0 голосов
/ 11 марта 2019

У меня есть данные, которые я сгенерировал, используя:

import pandas as pd
df = pd.DataFrame(columns=["price", "Number"], data=[
                  ["10", "07367"], ["20", "08356"], ["9", "07745"], ["5", "07735"], ["25", "07635"]])
# change column dtypes
df['price'] = df.price.astype(int)  # or float
df['Number'] = df.Number.astype(str)

Я пытаюсь отфильтровать эти данные, используя несколько условий, например:

print(df[(df['price'] >= 9) & (df['Number'] == "07745")])

Выход:

   price Number
2      9  07745

Но я бы хотел сделать это, используя difflib sequencematcher в качестве дополнительного условия. Примерно так:

print(df[(df['price'] >= 9) & (df['Number'] == "07745") & (difflib.SequenceMatcher(
    None, df['Number'], "07445").ratio() >= 0.8)])

Тем не менее, это не работает, как ожидалось, так как результат "Empty dataframe". Мой ожидаемый результат:

    price Number
 2      9  07745

Пожалуйста, помогите.

...