使用序列匹配器和其他条件过滤数据帧

时间:2019-03-11 13:08:26

标签: python-3.x filtering difflib

我有使用以下方法生成的数据:

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序列匹配器作为附加条件。像这样:

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

但是,由于结果为"Empty dataframe",因此无法正常工作。我的预期结果是:

    price Number
 2      9  07745

请协助。

0 个答案:

没有答案