Mam ramkę danych wyglądającą następująco: tu wpisz opis obrazu

Dla każdej daty zmienionej w stosunku do pierwotnej daty kolumna wygeneruje nowy wiersz z datą poprzedniego pierwotnego zamówienia i bieżącą datą zamówienia. Chcę sprawdzić to samo zamówienie (ten sam numer zamówienia i numer klienta), pierwotna data zamówienia pochodzi z bieżącej daty zamówienia, oczekiwany wynik wygląda następująco: tu wpisz opis obrazu

Na przykład, gdy pierwotna data zamówienia (wiersz 2) = bieżąca data zamówienia (wiersz 1), zwróci T.

Czy ktoś może pomóc, jak wygenerować proces w Pythonie? Wielkie dzięki

-3
Ali 20 listopad 2019, 23:15
2
Prawdopodobnie chcesz shift. Zapoznaj się z Jak zapytać i utwórz minimalnie odtwarzalny przykład, co oznacza brak zdjęć kodu!
 – 
user3483203
20 listopad 2019, 23:16

1 odpowiedź

Możesz spróbować maskowania za pomocą df.shift() (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.shift.html)

Na przykład, jeśli chcesz, aby ta sama kolumna była porównywana z poprzednim wierszem, a jeśli wartości byłyby równe, ustaw inną komórkę na 0, byłoby to coś takiego: df.loc [df.x == df.x.shift (), „y”] = 0 # sprawi, że y = 0 wen df.x będzie równe wartości wiersza powyżej.

1
rjj19278 20 listopad 2019, 23:18
Dziękuję, ale chcę porównać z inną kolumną ... jak drugi wiersz w kolumnie A w porównaniu z pierwszym wierszem w kolumnie B.
 – 
Ali
20 listopad 2019, 23:28