python - 将列表中的数据分配到 panda 数据框中的列中

标签 python pandas dataframe

我有一个列表users=['a','b','c','d']

我有一个包含 100 行的数据框 X。 我想用列表用户填充 X['users'] ,这样

  1. 分布均匀。在上面的示例中,每个元素必须有 25 个条目
  2. 分发以随机方式完成。每次运行时它不应该有固定的分发模式。 abcdabcd、aaabbbcccddd 和 accbddab 都是有效的发行版。

我该如何解决这个问题?

最佳答案

将每个元素的 25 个 (users*25) 传递到 np.random.Generator.choice (或已弃用的 np.random.choice )并设置 replace=False:

users = list('abcd')
X = pd.DataFrame()
rng = np.random.default_rng(0)

X['users'] = rng.choice(users*25, size=100, replace=False)
#   users
# 0     d
# 1     d
# 2     b
# 3     a
# ...

X.value_counts()
# users
# a        25
# b        25
# c        25
# d        25
# dtype: int64

在额外的运行中,我们得到了不同的采样,但每个元素始终为 25:

X['users'] = rng.choice(users*25, size=100, replace=False)
#   users
# 0     b
# 1     b
# 2     c
# 3     c
# ...

X.value_counts()
# users
# a        25
# b        25
# c        25
# d        25
# dtype: int64

关于python - 将列表中的数据分配到 panda 数据框中的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75932600/

相关文章:

python-3.x - Pandas 数据框在多列中获取索引和标题

python - 删除列值与 Pandas Dataframe 列值匹配的 SQL 表行

python - 初始化一个长度为 n 的列表元组

Python pandas 在垃圾收集上花费过多时间

python - 查找数据区间并对其进行排序

hadoop - 在 Spark 与 Spark 广播变量中处理 Hive Lookup 表

python - Postgresql报错语句太大

python - Pandas - 更改因子类型对象的级别顺序

python - 将字典的字典的字典转换为pandas数据帧

python - 通过 datetime.date 列表选择数据帧行(datetimeindex)