【发布时间】:2014-09-02 06:50:15
【问题描述】:
我目前正在尝试找到一种方法来按行随机化数据框中的项目。我在 pandas (shuffling/permutating a DataFrame in pandas) 中发现了这个线程,关于 shuffle/permutation column-wise,但出于我的目的,有没有办法做类似的事情
import pandas as pd
data = {'day': ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri'],
'color': ['Blue', 'Red', 'Green', 'Yellow', 'Black'],
'Number': [11, 8, 10, 15, 11]}
dataframe = pd.DataFrame(data)
Number color day
0 11 Blue Mon
1 8 Red Tues
2 10 Green Wed
3 15 Yellow Thurs
4 11 Black Fri
并将行随机化为类似
Number color day
0 Mon Blue 11
1 Red Tues 8
2 10 Wed Green
3 15 Yellow Thurs
4 Black 11 Fri
如果为了这样做,列标题必须消失或类似的东西,我明白。
编辑:因此,在我发布的线程中,部分代码引用了“轴”参数。我知道axis = 0 指的是列,axis = 1 指的是行。我尝试获取代码并将轴更改为 1,并且似乎只有当表包含所有数字(而不是字符串列表或两者的组合)时才会随机化我的数据框。
也就是说,我应该考虑不使用数据框吗?如果我的数据仅包含字符串或整数和字符串的组合,是否有更好的 2D 结构可以随机化行和列?
【问题讨论】:
-
注意:Zelazny7 的回答 stackoverflow.com/a/15772330/1240268(或者可能是我对使用 iloc 的评论)是 IMO 的最佳选择。
-
哎呀,重新打开,因为它明显不同。有兴趣了解为什么您想这样做!
-
好吧,我正在为实验创建某种随机化器。为了适当地平衡,我希望能够彼此独立地随机化行和列,但表中的数据并不都是整数,而是字符串列表、字典等。也就是说,我试图找出是否有一种方法可以基本上完成我发布的链接中所做的事情(按列随机化)并将其应用于行。我能够完成这项工作,但前提是数据框仅包含数字,尽管我想将可能性扩展到字符串等。
-
只是洗牌整个值不是“更随机”吗? (啊,这是公认的答案:太好了!)
标签: python random pandas dataframe shuffle