【问题标题】:How do I randomize without repetion in python dataframe?如何在 python 数据框中随机化而不重复?
【发布时间】:2020-02-27 00:44:16
【问题描述】:

对于数据框,我如何将其随机化以使其真正混合在一起?这样原表中并排的行就不再在一起了。

以这张桌子为例。

U         A         B         C
0  1.438161 -0.210454         0
1 -0.283780 -0.371773         0
2  0.552564 -0.610548         0
3  1.931332  0.649179         1
4  1.656010 -1.373263         1
5  0.142682 -0.657849         1
6  1.754264 -0.610548         0
7  1.341232  0.649179         0
8  1.656010 -1.373263         0
9  0.944862 -0.657849         0

我该如何做才能让它看起来像这样? (通过随机化)

U         A         B         C
1 -0.283780 -0.371773         0
3  1.931332  0.649179         1
0  1.438161 -0.210454         0
4  1.656010 -1.373263         1
8  1.656010 -1.373263         0
6  1.754264 -0.610548         0
2  0.552564 -0.610548         0
7  1.341232  0.649179         0
9  0.944862 -0.657849         0
5  0.142682 -0.657849         1

请注意,第二个表中的索引号没有任何按连续顺序上升或下降的值(即没有 6、7 或 4,3)

【问题讨论】:

  • > “使得原始表中彼此相邻的行不再在一起”但这并不是完全随机的。介意我问你的最终目标是什么?也许我们可以提出更好的方法来帮助您完成您想要的事情
  • 试试df = df.sample(frac=1.)
  • 我的最终目标是有一个数据框,每次运行代码时都有不同的数据框,但表中的行不能彼此相邻。所以我说随机化它,因为每次运行代码时最终的数据帧都必须不同

标签: python pandas dataframe random sample


【解决方案1】:

这应该可以满足您的需要(真正随机意味着在一起的行可能仍然在一起):

df.sample(frac=1)

frac 是要返回的结果的分数,1 表示全部。

更多文档在这里https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html

【讨论】:

    猜你喜欢
    • 2017-11-13
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多