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

生成含Sq. feet、Price、Borough的虚拟CSV数据时Borough列异常排查

问题原因与解决方法

问题原因

你当前的代码只执行了一次random.randrange(len(WORDS)),得到一个固定的整数索引(这里是5)。当把这个单一值赋值给DataFrame的Borough列时,pandas会将该标量值广播填充到所有行,导致整列显示同一个数字。random.randrange本身仅生成单个随机数,不会自动为每行生成新的随机索引。

解决方法

针对5万行的大数据量,推荐以下两种高效方案:

方案1:使用列表推导式逐行生成随机文本

import random
import pandas as pd

WORDS = ["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"]

# 构建包含三列的数据字典
data = {
    "Sq. feet": [你的数值生成逻辑],  # 替换为你已有的前两列生成代码
    "Price": [你的数值生成逻辑],
    "Borough": [WORDS[random.randrange(len(WORDS))] for _ in range(50000)]
}

df = pd.DataFrame(data)

列表推导式会循环5万次,每次生成一个新的随机索引,再从WORDS中取出对应文本值,最终生成包含随机文本的列。

方案2:使用numpy的np.random.choice(更高效)

import numpy as np
import pandas as pd

WORDS = ["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"]

data = {
    "Sq. feet": [你的数值生成逻辑],
    "Price": [你的数值生成逻辑],
    "Borough": np.random.choice(WORDS, size=50000)
}

df = pd.DataFrame(data)

np.random.choice可以直接从WORDS列表中随机选取指定数量(50000)的元素,底层是向量化操作,处理大数据量时比列表推导式更快。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:32:12