我有兩個數據框: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