Форум сайта python.su
Не могу найти в интернете подходящую информацию, и свои варианты иссякли, может кто знает?
Есть DataFrame Pandas, в нем один столбец с запросами для поисковика типа: “купить дрель 2.4 мм”.
Каждую строку с подобными запросами я разбиваю на отдельные элементы и создаю новый столбец в котором получаются списки. https://skr.sh/sKFdE9dzY4o?a
Далее я применяю функцию которая сравнивает, есть ли в каждом из этих списков определенное слово:https://skr.sh/sKFhGZpFhjg?a
И при проходе цикла он натыкается на дробное число и останавливается, т.к. не может его итерировать:https://skr.sh/sKF7k761n4i?a
Вопрос, как можно преобразовать эти дробные числа в строки? Через циклы я не могу подобрать к этом числу, так как перед началом итерации дробного числа он останавливается соответственно не преобразует в строку. Спасибо за любой ответ.
Офлайн
А где код сам? Неправильно что-то используешь, раз у тебя функция принимает вещественное число на итерацию.
Офлайн
py.user.next
А где код сам? Неправильно что-то используешь, раз у тебя функция принимает вещественное число на итерацию.
Отредактировано Salamander174 (Июнь 9, 2023 16:27:57)
Офлайн
Salamander174
Вопрос, как можно преобразовать эти дробные числа в строки?
df['Числа'] = df['Числа'].astype(str)
Офлайн
Salamander174В данный момент ты пытаешься сделать что-то вроде этого
Я пробовал через pythontutor пройтись по шагам, но там можно по списку списков только пройтись(и там все работает). Возможно здесь проблема в том что это DataFrame.
>>> n = 123.456 >>> >>> for i in str(n): ... print(i) ... 1 2 3 . 4 5 6 >>>
Офлайн
py.user.nextЯ сформулировал более понятное объяснение сути проблемы) Долго вышло.
Офлайн
Salamander174Возьми весь свой код, занеси его в файл с расширением .py и выполняй этот файл в консоли винды.
И именно эту проблему я и не могу понять и решить.
[code python]
тут пишешь свой код, чтобы он получался в белом прямоугольнике
[/code]
Отредактировано py.user.next (Июнь 12, 2023 00:29:19)
Офлайн
py.user.nextСпасибо, не нашел беглым поиском на форуме, как оформлять правильно проблемы с кодом.
import pandas as pd df = pd.read_excel("lakokras.xlsx") list_city = pd.read_excel("list_city.xlsx", names=['city']) stop_word = pd.read_excel("stop_word.xlsx", names=['stop_slova']) list_information = pd.read_excel('list_information_word.xlsx', names=['names']) def find_stop_words(phrase_for_split): for word in stop_word['stop_slova']: if word in phrase_for_split: return 'stop' def find_city(phrase_for_split): for word in list_city['city']: if word in phrase_for_split: return 'stop' df['Фраза_по_словам'] = df['name'].str.split() df['Содержит_стоп_слово'] = df['Фраза_по_словам'].apply(find_stop_words) df.drop(df[df['Содержит_стоп_слово'] == 'stop'].index, inplace=True) df.drop(columns = ['Содержит_стоп_слово', 'Фраза_по_словам'], inplace=True)
Прикреплённый файлы:
klaster_cut.py (1,1 KБ)
Офлайн
Salamander174
И при проходе цикла он натыкается на дробное число и останавливается, т.к. не может его итерировать:https://skr.sh/sKF7k761n4i?a
def find_stop_words(phrase_for_split): try: for word in stop_word['stop_slova']: if word in phrase_for_split: return 'stop' except: print(phrase_for_split) print(type(phrase_for_split))
Офлайн
xam1816Спасибо больше, буду смотреть где он его находит.
Офлайн