Чтобы получить значение из выражения регулярных выражений на моем входе, а не местоположение из моего конкретного кода Python - PullRequest
1 голос
/ 04 апреля 2019

У меня есть входной файл Excel, который я преобразовал в столбец pandas dataframe, в котором я использую выражение регулярного выражения для получения значений, но я получаю местоположение.

Добавление изображения входного файла с требованием:

входной файл

Требование согласно изображению:

Email                         Order
testuser@xyz.com      1-1155945200890,1-1152015113839

Что я получаю из своего кода:

Email                         Order
testuser@xyz.com      [<filter object at 0x000002900BD628D0>]

Код для определения обратной связи:

for user in users:
    intent_name=data_to_analyse2.loc[data_to_analyse2['USERID'] ==  user]
    intent_list=list(intent_name['INTENTNAME'])
    feedback=list(intent_name['Input'])     #taking data from input column

Ниже приведен код, который я запустил и записал в файл CSV

T_Order=[]
Appointment=[]

order=re.compile("1[\-][\d]{2,15}")

order_list=filter(order.match, feedback)


if 'T Order' in feedback:
    T_Order.append(order_list)

if 'Appointment' in feedback:
    Appointment.append(order_list)

try:
    T_order_count=len(T_Order[0])
except:
    T_order_count=0

try:
    Appointment_count=len(Appointment[0])
except:
    Appointment_count=0

Но мне нужны значения вместо местоположения.Пожалуйста, помогите мне, где я делаю это неправильно и как это исправить.

1 Ответ

0 голосов
/ 04 апреля 2019

filter возвращает ленивый объект, который выполняет вычисления только при выполнении итерации.Вы можете преобразовать его в конкретный список, используя функцию list.Итак, ваш код будет выглядеть так (я немного позволил себе рефакторинг):

T_Order = []
Appointment = []

order = re.compile("1[\-][\d]{2,15}")
order_list = list(filter(order.match, feedback))

if 'T Order' in feedback:
    T_Order.append(order_list)
if 'Appointment' in feedback:
    Appointment.append(order_list)

T_order_count = len(T_Order[0]) if T_Order else 0
Appointment_count = len(Appointment[0]) if Appointment else 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...