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

Python新手:数据挖掘场景下如何简单实现指定数据集转换?

实现方法:用Pandas快速转换

作为Python新手,用Pandas库就能非常简便地完成这个转换——这是数据处理领域最常用的工具,处理这类宽表转换简直是拿手好戏。

步骤1:整理原始数据

首先我们需要把你的原始数据拆分成「每个采购记录对应的商品列表」。结合你给出的目标数据集,假设原始数据对应3个采购记录,商品分别是:

  • 记录1: milk, egg, sausage, butter
  • 记录2: water, egg
  • 记录3: egg, sugar, cake, water

我们先把这些数据组织成列表形式:

# 原始采购记录:每个子列表是一个采购单的商品
purchase_records = [
    ["milk", "egg", "sausage", "butter"],
    ["water", "egg"],
    ["egg", "sugar", "cake", "water"]
]

步骤2:用Pandas生成目标格式

接下来用Pandas的get_dummies和concat方法快速生成二进制矩阵,再调整格式匹配你的需求:

import pandas as pd

# 1. 将每个采购记录转为Series,标记已购买的商品为1
series_list = []
for idx, items in enumerate(purchase_records, start=1):
    # 商品名作为索引,值设为1表示已购买
    s = pd.Series(1, index=items, name=idx)
    series_list.append(s)

# 2. 合并所有采购记录,缺失值填充为0(表示未购买)
df = pd.concat(series_list, axis=1).fillna(0).T

# 3. 将0/1转换为TRUE/FALSE,添加记录ID列
df = df.astype(bool).reset_index().rename(columns={"index": "ID"})

# 4. 调整列顺序和目标完全一致(可选)
target_columns = ["milk", "egg", "sausage", "butter", "sugar", "cake", "water"]
df = df[["ID"] + target_columns]

# 输出结果
print(df)

运行代码后,你会得到和目标几乎一致的输出:

ID   milk    egg  sausage  butter  sugar   cake  water
0   1   True   True     True    True  False  False  False
1   2  False   True    False   False  False  False   True
2   3  False   True    False   False   True   True   True

关键步骤解释

  • pd.Series(1, index=items):把每个采购单的商品作为索引,值设为1,明确标记该商品被购买。
  • pd.concat(...):把所有采购单的Series合并成宽表,缺失的位置自动填充NaN,我们用fillna(0)把未购买的商品标记为0。
  • .astype(bool):将0/1转换成布尔值(False/True),完美匹配你要的目标格式。

如果原始数据是长字符串怎么办?

如果你的原始数据是未拆分的字符串,比如:

raw_data = "PurchaseLine01 milk egg sausage butter PurchaseLine02 water egg PurchaseLine03 egg sugar cake water"

可以先拆分字符串提取采购记录:

# 按采购行标记分割字符串
parts = raw_data.split("PurchaseLine")[1:]

# 提取每个采购记录的商品
purchase_records = []
for part in parts:
    # 去掉开头的行号,剩下的就是商品列表
    items = part.strip().split()[1:]
    purchase_records.append(items)

# 之后就可以用上面的Pandas代码处理了

这样不管原始数据是列表还是字符串,都能快速转换成你需要的目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:10:35