如何在Python中使用pandas翻译以下查询?你知道吗
SELECT Id,
MIN(CASE WHEN Type = 0001 THEN Date END) AS TransactionDate,
MIN(CASE WHEN Type = 0002 THEN Date END) AS SignupDate,
MIN(CASE WHEN Type = 0003 THEN Date END) AS SeenDate
FROM Transactions
WHERE State = 0
GROUP BY Id
我可以在第一栏这样做:
transactionDate = transactions[transactions["Type"] == "0001"].groupby("Id")["Date"].min()
但这似乎效率很低,因为我必须重复多次groupby。我最困惑的是如何在groupby之后对行集应用3个不同的过滤器。有没有更有效的方法?你知道吗
请考虑两种方法:先分配列,然后进行聚合;或者有条件地内联聚合,然后删除重复项:
方法1
方法2
数据
用随机数据证明(为再现性设定种子):
输出
方法1
方法2
相关问题 更多 >
编程相关推荐