Я пытаюсь отфильтровать различные столбцы информационного кадра, чтобы сохранить значения, уже определенные в словаре. Я написал для этого функцию:
def replace_gym(x):
for i in list(amenities_dict['Gym']):
if x == i:
return(x)
, а затем применил функцию к столбцу:
transdf['Gym'] = transdf['Gym'].apply(lambda x: replace_gym(x))
Теперь по какой-то причине она применяется только к самому первому предмету в удобствах. список - кажется, что он не перебирает список. Все значения в столбце «Тренажерный зал». (это первый элемент в списке)
Список (comfort_dict ['Gym']) * (то есть список, связанный с ключом 'Gym' в словаре leisure_dict) выглядит следующим образомэто:
вертикальный и горизонтальный список
Ниже приведен пример со списком тестов. С помощью списка тестов, определенного вручную, он работает и сохраняет все значения (маникюр, педикюр и т. Д.)
testlist = ['Manicure', 'Pedicure', 'Bowling', 'Casino']
def replace_test(x):
for i in testlist:
if x == i:
return(x)
transdf['Gym'] = transdf['Gym'].apply(lambda x: replace_test(x))
Так что я считаю, что в Python есть другой способ перебора «вертикали» и «а»горизонтальный список? Как видите, код точно такой же, меняются списки. В любом случае, я могу сделать их эквивалентными? (т. е. повернуть список гимнастики по горизонтали)
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Спасибо за ответы. Обнаружил ошибку!
Неаккуратно с моей стороны, но я оставил строку кода, в которой на самом деле использует инвертированные comfort_dict для замены значений (например, все «Fitness Center», например, строки, в «Gym»)
Удаление этой строки решило проблему!