Похоже, вы пытаетесь отфильтровать список строк, используя список целых чисел ...
test = ['a', 'b']
test = pd.Series(test)
test = list(test.index)
print test
>> [0, 1]
Не уверен, почему вы манипулируете test
таким образом, если вы просто сохраните его как список (['a','b']
), он должен дать ожидаемый результат:
import pandas as pd
df = pd.read_csv('Test Data.csv')
print df
test = ['a', 'b']
df['string_field'] = df['string_field'].apply(lambda s:' '.join(x for x in s.split() if x in test))
print df
>>
string_field
0 a b c d
1 a 1 b 2
2 ab ba
string_field
0 a b
1 a b
2