col1 col2 col3
0 banana1 banana2 banana2
1 apple1 apple2 apple3
2 monkey1 monkey2 monkey3
3 iphone1 iphone2 iphone3
4 runner1 runner2 runner3
5 pig1 pig2 pig3
6 wifi1 wifi2 wifi3
7 girl1 girl2 girl3
8 boy1 boy2 boy3
9 couple1 couple2 couple3
如何在每行的3个元素中随机选择1个元素并将其附加到一个新的数据帧中,我希望它循环N次,然后继续在新行的3个元素中添加1个元素并循环N次?你知道吗
import pandas as pd
data = {'col1': ['banana1', 'apple1', 'monkey1', 'iphone1', 'runner1', 'pig1', 'wifi1', 'girl1', 'boy1', 'couple1'],
'col2': ['banana2', 'apple2', 'monkey2', 'iphone2', 'runner2', 'pig2', 'wifi2', 'girl2', 'boy2', 'couple2'],
'col3': ['banana2', 'apple3', 'monkey3', 'iphone3', 'runner3', 'pig3', 'wifi3', 'girl3', 'boy3', 'couple3']}
df = pd.DataFrame(data, columns=['col1', 'col2' , 'col3'])
所以我想做的是为每一行随机选择item1
、item2
或item3
并将其附加到新数据帧中的新行,当第10项被选中时,我希望它重新开始执行N次,然后移到新数据帧中的新行并循环N次。最终得到这样的结果(随机性):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
banana3 apple2 monkey1 iphone2 runner2 pig1 wifi2 girl3 boy1 couple1 banana1 apple2 monkey2 iphone3 runner3 pig3 wifi2 girl1 boy1 couple3
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
banana1 apple2 monkey2 iphone3 runner1 pig2 wifi3 girl1 boy3 couple2 banana2 apple1 monkey2 iphone2 runner2 pig1 wifi2 girl3 boy1 couple2
在这个输出中,我在每行上选择了1/3的循环,在新的数据帧中将它循环了2次到N行。你知道吗
我想通过一个函数来实现它,这个函数将根据n和n给出所需的输出
new_df = []
def rand_element_selection(n,N):
for row in df.iterrows:
element_holder = df.sample(1)
new_df.append(placeholder)
上面没有定义n
和N
,因为我在努力前进。。你知道吗
连接主要来自EdChum's answer:
IIUC您可以通过在
axis=1
上调用sample
并转置:相关问题 更多 >
编程相关推荐