我有两个数据框:data
和rules
。Python:应用Dataframe不接受轴参数
>>>data >>>rules
vendor rule
0 googel 0 google
1 google 1 dell
2 googly 2 macbook
我试图计算每个供应商和规则之间的相似莱文斯坦后,两个新列添加到data
数据帧。所以,我的数据框应该非常包含看起来像这样的列:
>>>data
vendor rule similarity
0 googel google 0.8
到目前为止,我试图执行一个apply
函数将返回我这个结构,但数据帧适用不接受axis
说法。
>>> for index,r in rules.iterrows():
... data[['rule','similarity']]=data['vendor'].apply(lambda row:[r[0],ratio(row[0],r[0])],axis=1)
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/home/mnnr/test/env/test-1.0/runtime/lib/python3.4/site-packages/pandas/core/series.py", line 2220, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas/src/inference.pyx", line 1088, in pandas.lib.map_infer (pandas/lib.c:62658)
File "/home/mnnr/test/env/test-1.0/runtime/lib/python3.4/site-packages/pandas/core/series.py", line 2209, in <lambda>
f = lambda x: func(x, *args, **kwds)
TypeError: <lambda>() got an unexpected keyword argument 'axis'
有人能帮我弄清楚我做错了什么吗?我所做的任何更改只是创建新的错误。谢谢
什么'比率'实际上在这里做,因为我觉得你可以做这个'不'应用',所以它的向量化 – EdChum
'比率'是来自'Levenshtein'库的函数,将返回相似性度量 –
是否有1: 1 dfs之间的关系?你只是逐行迭代并计算每个相应行之间的levenshtein距离? – EdChum