Скажем, у меня есть CSV, как показано ниже
+-----+-----------+---------+
| ID | state | city |
+-----+-----------+---------+
| 101 | READY | |
| 101 | DELIVERED | NEWYORK |
| 101 | DELIVERED | LONDON |
| 102 | READY | |
| 102 | DELIVERED | LONDON |
| 103 | READY | |
| 103 | DELIVERED | NEWYORK |
| 104 | READY | |
| 104 | DELIVERED | TOKYO |
| 104 | DELIVERED | PARIS |
| 105 | DELIVERED | NEWYORK |
+-----+-----------+---------+
Теперь мне нужен идентификатор с состоянием READY
, который имеет DELIVERED
как NEWYORK
.
- Тот же идентификатор будет приходите несколько раз с разными штатами и городами.
- Всегда
city
для READY будет пустым - Всегда
city
для DELIVERED будет иметь некоторые значения.
, поэтому сначала я хочу проверить значение столбца city
для DELIVERED state
. Если это NEWYORK, возьмите строку READY этого идентификатора. Если для этого нет строки READY
, мы можем игнорировать (ID 105 в этом примере)
ОЖИДАЕМЫЙ ВЫХОД
+-----+-----------+---------+
| ID | state | city |
+-----+-----------+---------+
| 101 | READY | |
| 103 | READY | |
+-----+-----------+---------+
Я пробовал использовать самостоятельное присоединение к pandas. Но я понятия не имею, как действовать дальше, так как я новичок в python. В настоящее время я делаю это в SQL.
import pandas as pd
mydata = pd.read_csv('C:/Mypython/Newyork',encoding = "ISO-8859-1")
NY = pd.merge(mydata,mydata,left_on='ID',right_on='ID',how='inner')