【发布时间】:2017-02-23 22:49:21
【问题描述】:
我目前有一个需要加入模糊逻辑的数据集。 Dataframe df1 是较小的参考表,大约有 10 个观察值。数据框 df2 是我的主要数据框,有大约 2000 个观察值,需要执行模糊逻辑连接。我在下面介绍示例和我的尝试。
import difflib
df1 = pd.DataFrame({'number':[1,2,3,4,5],'not_shifted':['one','two','three','four','five']})
df2 = pd.DataFrame({'values':[['test'],['a'],['b'],['c'],['d'],['e'],['f'],['f'],['f']],'not_shifted':[np.nan,'one','too','three','fours','five','six',np.nan,'one']})
# my approach
df2['not_shifted'] = df2['not_shifted'].map(lambda x: difflib.get_close_matches(x, df1['not_shifted'])[0])
我收到以下错误: 列表超出范围
TypeError: 'float' object is not utterable
如果我用其他东西替换 np.nan,我会得到另一个错误:
列表超出范围
【问题讨论】:
标签: python pandas fuzzy-logic