You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加TransactionOrder列标记用户交易发生顺序?

解决方案

1. SQL实现

使用窗口函数ROW_NUMBER()按User_ID分区,再按Transaction_Date排序得到交易序号,最后通过CASE WHEN将序号转换为对应的英文标识:

SELECT 
    Transaction_ID,
    User_ID,
    Transaction_Date,
    Amount,
    DayOfTheWeek,
    CASE 
        WHEN row_num = 1 THEN 'First'
        WHEN row_num = 2 THEN 'Second'
        WHEN row_num = 3 THEN 'Third'
        -- 可根据实际需求继续扩展更多序数词
        ELSE CAST(row_num as VARCHAR) || 'th'
    END AS TransactionOrder
FROM (
    SELECT 
        *,
        ROW_NUMBER() OVER (PARTITION BY User_ID ORDER BY Transaction_Date) AS row_num
    FROM transactions
) t;

2. Python Pandas实现

先对数据按User_ID分组,按Transaction_Date排序后生成组内序号,再映射为对应的英文标识:

import pandas as pd

# 加载示例数据(实际使用时可替换为你的数据源读取逻辑)
df = pd.DataFrame([
    ["Transaction_01", "User_01", "2021-09-06", 532, "Monday"],
    ["Transaction_02", "User_02", "2021-09-05", 631, "Sunday"],
    ["Transaction_03", "User_03", "2021-09-06", 7214, "Monday"],
    ["Transaction_04", "User_04", "2021-09-08", 131, "Wednesday"],
    ["Transaction_05", "User_01", "2021-09-08", 13, "Wednesday"],
    ["Transaction_06", "User_03", "2021-09-09", 72, "Thursday"],
    ["Transaction_07", "User_05", "2021-09-11", 139, "Saturday"],
    ["Transaction_08", "User_05", "2021-09-13", 214, "Monday"]
], columns=["Transaction_ID", "User_ID", "Transaction_Date", "Amount", "DayOfTheWeek"])

# 转换日期格式确保排序逻辑正确
df['Transaction_Date'] = pd.to_datetime(df['Transaction_Date'])

# 生成每个用户的交易序号
df['row_num'] = df.groupby('User_ID')['Transaction_Date'].rank(method='first', ascending=True).astype(int)

# 映射序号到英文标识
order_map = {1: 'First', 2: 'Second', 3: 'Third'}
df['TransactionOrder'] = df['row_num'].map(order_map).fillna(df['row_num'].astype(str) + 'th')

# 清理临时列并按原列顺序输出结果
df = df.drop('row_num', axis=1)[["Transaction_ID", "User_ID", "Transaction_Date", "Amount", "DayOfTheWeek", "TransactionOrder"]]

print(df)

如果需要支持更多交易次数,只需扩展CASE WHEN或order_map中的映射关系即可。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:15:43