Я считаю, что нужно назначить список обратно:
datadf['new'] = matchlist
Или использовать понимание списка вместо решения цикла:
datadf = pd.DataFrame({
'ItemName': ['as','asds','as','aa','ssb','ab','sb']
})
print (datadf)
ItemName
0 as
1 asds
2 as
3 aa
4 ssb
5 ab
6 sb
#convert to list is not necessary
L = datadf['ItemName']
datadf['new'] = [difflib.get_close_matches(i, L, 3, 0.6) for i in L]
print (datadf)
ItemName new
0 as [as, as, asds]
1 asds [asds, as, as]
2 as [as, as, asds]
3 aa [aa]
4 ssb [ssb, sb]
5 ab [ab]
6 sb [sb, ssb]
РЕДАКТИРОВАТЬ:
Если необходимо проверить между 2 столбцамиразных фреймов данных:
datadf = pd.DataFrame({ 'Fruits':pd.Categorical(['apple','orange', 'apple', 'pineapple']),
'Juices':pd.Categorical(['apple','orange smash','apple1','milkshake']),
'Year': pd.Categorical([2011, 2011, 2012, 2012])})
print (datadf)
Fruits Juices Year
0 apple apple 2011
1 orange orange smash 2011
2 apple apple1 2012
3 pineapple milkshake 2012
data_df_splitone = datadf[(datadf['Year'] == 2011)].copy()
data_df_splittwo = datadf[(datadf['Year'] == 2012)].copy()
L1 = data_df_splitone['Juices']
L2 = data_df_splittwo['Juices']
data_df_splitone['new'] = [difflib.get_close_matches(i, L2, 3, 0.6) for i in L1]
print (data_df_splitone)
Fruits Juices Year new
0 apple apple 2011 [apple1]
1 orange orange smash 2011 []