Я хочу получить значение последней строки при группировке по имени. Например, последняя итерация имени Уолтер в строке 2, я хочу получить Dog + "," + Cat для Col1 и Beer + "," + Wine в Col3. Столбцов много, поэтому я хотел бы сделать это на основе индексации / позиции столбца, а не имен столбцов.
+------+---------+-------+
| Col1 | Name | Col3 |
+------+---------+-------+
| Dog | Walter | Beer |
| Cat | Walter | Wine |
| Dog | Alfonso | Cider |
| Dog | Alfonso | Cider |
| Dog | Alfonso | Vodka |
+------+---------+-------+
Это результат, который я хочу:
+---------------+---------------------------+---------------------+
| Col1 | Name | Col3 |
+---------------+---------------------------+---------------------+
| Dog | Walter | Beer |
| Dog, Cat | Walter, Walter | Beer, Wine |
| Dog | Alfonso | Cider |
| Dog, Dog | Alfonso, Alfonso | Cider, Cider |
| Dog, Dog, Dog | Alfonso, Alfonso, Alfosno | Cider, Cider, Vodka |
+---------------+---------------------------+---------------------+
Это то, что я пробовал (но не работает):
for i in df:
if df.loc[i,1] == df.loc[i+1,1]:
df.loc[i,0] + ", " + df.loc[i+1,0]
else:
df.loc[i+1,0]
Я читал, что итерация по строкам в pandas с for-l oop не одобряется, поэтому я хотел бы получить вывод с помощью векторизации или применения (или другого эффективного способа).