我想在按名称分组时获取最后一行的值。例如,第 2 行中名字 Walter 的最后一次迭代,我想在 Col1 中获取 Dog + "、" + Cat 和 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]
我读到使用 for 循环遍历 pandas 中的行是不受欢迎的,所以我想通过使用矢量化或应用(或其他一些有效的方式)来获得输出。