Мне нужно отредактировать приведенный ниже сценарий, чтобы выполнить действие, но, поскольку я новичок в Python, я борюсь.

Приведенный ниже сценарий классифицирует слова в наборе данных:

import pandas as pd

d = {'men': ['men', 'boy'], 'women': ['women', 'girl', 'lady']}

def classify(text):
    gender = 'None of any'
    for i in d:
        if any(j in text for j in d[i]):
            gender = i
    return gender

df = pd.DataFrame({'text':['this is a boy', 'a girl', 'two women', 'cat']})
df['cat'] = df['text'].apply(lambda x: classify(x))
print(df)

Насколько я понимаю (пожалуйста, поправьте меня, если я ошибаюсь), «pd.DataFrame» является «встроенным» в сценарий. Мне нужен «pd.DataFrame» для извлечения из CSV, обработки данных и классификации, а не «встроенного».

Кто-нибудь знает как это сделать?

Заранее спасибо

0
sdevlin123 24 Ноя 2021 в 11:39
Вам нужна помощь с вашей логикой или вы пытаетесь понять, как читать из CSV? Если последнее - вы можете использовать df=pd.read_csv("csv_filename.csv", ...). Вы можете узнать больше в документации здесь - pandas.pydata.org/docs /reference/api/pandas.read_csv.html
 – 
Mortz
24 Ноя 2021 в 11:47

2 ответа

Лучший ответ

Предположим, ваш CSV-файл называется data.csv.

А это выглядит так:

enter image description here

Вы можете просто заменить строку, содержащую pd.DataFrame(...), на df = pd.read_csv('data.csv').

Вот окончательный результат:

import pandas as pd

d = {'men': ['men', 'boy'], 'women': ['women', 'girl', 'lady']}

def classify(text):
    gender = 'None of any'
    for i in d:
        if any(j in text for j in d[i]):
            gender = i
    return gender

df = pd.read_csv('data.csv')  # I changed this line
df['cat'] = df['text'].apply(lambda x: classify(x))
print(df)
0
Brian 24 Ноя 2021 в 12:04
Привет, Брайан, приведенный выше сценарий не сработал для меня. Я предполагаю (поскольку я говорю, что новичок в этом), «df [text]» отсутствует, его заменили на «df = pd.read_csv». Нужно ли мне называть фрейм данных, чтобы Python знал, против чего запускать def classify? Ваше здоровье
 – 
sdevlin123
24 Ноя 2021 в 12:07
Можете ли вы вставить сообщение об ошибке из сценария? Это помогает мне понять, что пошло не так на вашей машине.
 – 
Brian
24 Ноя 2021 в 12:07
Что вы видите, когда запускаете print(df['text'])?
 – 
Brian
24 Ноя 2021 в 12:17
Появляется ли у вас text в верхней строке файла * .csv?
 – 
Brian
24 Ноя 2021 в 12:18
Я по-прежнему получаю ту же ошибку (я добавил изображения, так как это не позволяет мне добавлять код), извините, немного нуба в этом
 – 
sdevlin123
24 Ноя 2021 в 12:27