You need to enable JavaScript to run this app. 如何从字典随机选条目生成pandas DataFrame列且排除指定值?
优惠活动
大模型
产品
解决方案
定价
更多

如何从字典随机选条目生成pandas DataFrame列且排除指定值?

高效实现方案

针对大数据量场景,推荐使用全向量化运算实现,完全避免Python层面的逐行遍历,性能远高于apply等逐行操作方案。


代码示例

import pandas as pd
import numpy as np

# 提前定义城市列表和索引映射
cities = list(city.keys())
city_to_idx = {c:i for i,c in enumerate(cities)}
city_count = len(cities)

# 1. 将现有CITY列转为对应数值索引
original_idx = df["CITY"].map(city_to_idx).to_numpy()
# 2. 生成1~city_count-1范围内的随机偏移量,保证运算后索引和原值不同
offset = np.random.randint(low=1, high=city_count, size=len(df))
# 3. 计算新索引并映射回城市名
new_idx = (original_idx + offset) % city_count
df["CITY2"] = np.take(cities, new_idx)

方案说明

  • 核心逻辑:通过给原有城市索引叠加一个[1, 城市总数-1]范围内的随机偏移,再对城市总数取模,保证得到的新索引一定不等于原有索引,对应城市自然满足和同一行CITY取值不同的要求
  • 性能优势:所有运算均调用numpy底层向量化实现,无Python级循环,千万行级数据也可在秒级完成运算
  • 兼容所有城市数量≥2的场景,和DataFrame长度无关

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 22:00:01