【问题标题】:Assign random value to each cell of a column in dataframe为数据框中列的每个单元格分配随机值
【发布时间】:2020-05-02 21:47:24
【问题描述】:

我正在尝试迭代 panda 的 DataFrame 中的一列,以使用 numpy.rand.randint 函数为每个单元格分配一个唯一的随机值。

for i in csv_with_id.iteritems():
    csv_with_id['index'] = np.random.randint(1,10000)

结果如下:

我的问题是索引列上的重复值..

我也试过循环使用iterrows() 和普通csv_with_id

我能得到一些指导吗?

谢谢

【问题讨论】:

  • 您能提供原始数据框的最小示例吗?另外,下一行的“i”在哪里? for i ...下一行没有'i'。 “索引”指的是什么?原始数据框的最小示例可能会有所帮助。
  • 那是原始数据框,我只想用随机值重新分配索引列上的值。

标签: python pandas numpy dataframe data-science


【解决方案1】:

使用 numpy 中的 random.choice 函数,您可以指定 replace=False,这表示您不能有两次相同的值。 这个函数会给你一个完整的向量,你可以分配给df.index

虚拟数据帧示例

import numpy as np
import pandas as pd
df = pd.DataFrame({'col1': range(8000)})
# get number of rows df values between 0 and 9999 - all distinct
df.index = np.random.choice(range(10000),df.shape[0],replace=False)

您可以检查df.index 中不同元素的数量是df 中的行数:

len(df.index.unique())
# 8000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多