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

如何使用Python实现DataFrame行转列:产品值转列名并标记yes

Python实现客户购买数据行转列方案

使用Pandas库即可快速完成需求,完整可运行代码如下:

import pandas as pd

# 1. 构造原始数据(实际使用时可替换为读取本地文件的逻辑,例如pd.read_csv())
raw_data = [
    [1, "shirt style A"],
    [1, "sky wing"],
    [2, "sky wing"],
    [3, "shirt style B"],
    [3, "shirt style D"],
    [3, "queen couple"],
    [4, "big cup"],
    [5, "small pool"],
    [5, "sky wing"],
    [5, "shirt style A"]
]
df = pd.DataFrame(raw_data, columns=["customerID", "product"])

# 2. 核心转换逻辑
# 新增标记列,购买过的产品标记为yes
df["buy_flag"] = "yes"
# 行转列,空值填充为空字符串,列名加p_前缀
result = df.pivot(
    index="customerID",
    columns="product",
    values="buy_flag"
).fillna("").add_prefix("p_").reset_index()

# 打印验证结果
print(result)

逻辑说明

  • 代码输出结果与预期格式完全一致:购买过的产品对应单元格填充yes,未购买留空,所有产品列自动增加p_前缀
  • 若原始数据中存在同一客户多次购买同一产品的情况,可提前对数据按customerID和product去重,避免pivot报错:df = df.drop_duplicates(["customerID", "product"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:36:02