【问题标题】:how to create a list with random round values with a given max value如何创建具有给定最大值的随机舍入值的列表
【发布时间】:2018-03-16 17:03:27
【问题描述】:

我想创建一个长度为 4 的列表

我有一个 df,

        contents    values
    0   A           484
    1   B           429
    2   C           130
    3   D           108
    4   E           77
    5   F           2

我想为这些值定义一个 bin 范围。 我正在尝试获取这些值在什么范围内的 df 在这里,我的最大值为 484。

  my_max=468, it should give round-off values in the list

  my desired output is, output_list=[0,100,300,500]

【问题讨论】:

  • 你尝试了什么?
  • 从 excel 表中,我使用 value_counts() 过滤了这些值的出现,现在我试图为我的分箱获取一个包含一系列值的列表
  • 是的,我不想要 6 行。我想创建一个长度为 4 的范围
  • 您想自动生成垃圾箱吗?正如 Zero 所说,解释你是如何到达输出列表的。
  • 是的,就是不等的bin,我需要一个等差的bin,比如我给了那个bin

标签: python pandas numpy dataframe random


【解决方案1】:

如果你知道最多三个数字,那么你可以使用:

int(round(484,-2))

输出:

=> 500

这个函数的概括是(用值替换484):

int(round(484,-(len(str(484))-1)))

输出:

=> 500

【讨论】:

  • -2 应该是484 的函数。否则,这是一个很有前途的功能。
  • 谢谢,使用这个我可以四舍五入,这是否可以得到一个具有定义长度的 (0,5) 之间的范围列表
  • 添加了一个适用于所有值的通用函数
【解决方案2】:

使用np.linspace

In [1212]: np.linspace(0, round(df['values'].max(), -2), len(df))
Out[1212]: array([   0.,  100.,  200.,  300.,  400.,  500.])

【讨论】:

  • 这个工作正常,但我们需要删除每个项目中的 (.)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 2019-04-30
相关资源
最近更新 更多