Как выбрать несколько строк на основе значений заголовка? - PullRequest
0 голосов
/ 28 мая 2019

Я хочу перебирать строки в кадре данных Pandas, проверяя только сходство в нескольких столбцах среди строк.Затем я хочу проверить условие сходства с последующим сравнением дат (которое раньше или позже) и применить соответствующие изменения к одному элементу выбранной строки.

Для выбора определенных строк я вродехочу что-то вроде этого:

p=z["product_name", "Category 1", "Category 2", "Features"].iloc[i-1:i]

Я знаю, что это не правильно, но это просто чтобы дать идею.Выберите строку только с несколькими конкретными заголовками из многих.

i=1
while (i<=len(z)):
    j=i+1
    p=z["product_name", "Category 1", "Category 2", "Features"].iloc[i-1:i]
    p=p.to_string(index=False)
    while(j<=len(z)):
        q=z["product_name", "Category 1", "Category 2", "Features"].iloc[j-1:j]
        q=q.to_string(index=False)
        if (p==q):
            if(z["Update Date"].iloc[i-1:i]>z["Update Date"].iloc[j-1:j]):
                 z.drop(j, axis=0)
        j=j+1
    i=i+1

Я знаю, что большая часть этого кода на самом деле неверна, но я пытаюсь использовать этот подход.Пожалуйста, предложите лучший подход / функцию, которая решает эту проблему.

1 Ответ

0 голосов
/ 28 мая 2019

Я точно не знаю вашего вопроса, но в вашем коде есть базовая проблема, когда вы запускаете i-1: i, она дает только одно значение, почему вы используете эту строку вместо непосредственно одной переменной

p=z["product_name", "Category 1", "Category 2", "Features"].iloc[i-1:i]

попробуйте это:

p=z[["product_name", "Category 1", "Category 2", "Features"]].iloc[i-1:i]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...