我有这样的数据集:
A B
---
a a1
a a2
a a3
.
.
.
z z1
z z2
z z3
z z4
.
.
现在,对于A列中的每个唯一值,我想要一个来自B列的该值的随机伙伴。
示例:
a,a3
b,b54
c,c33
d,d77
无论如何,这可以使用pandas或在python中以高效和快速的方式使用csv流来完成吗?
答案 0 :(得分:2)
按列A分组,并从相应的组中选择“B”的随机值。
df.groupby("A").agg({"B": lambda x: random.choice(x)})
答案 1 :(得分:0)
我能想到的最标准:使用来自旧数据帧的唯一标记创建新数据框。
import random
import pandas as pd
df2 = df.drop_duplicates('A')
indices = random.sample(df.index, len(df2))
df2['B'] = df.loc[indices, 'B'].values
答案 2 :(得分:-1)
可能是更好的方法,但
import random as rd
import pandas as pd
a = ['a1','a2','a3']
b=['b1','b2','b3']
rd.shuffle(b)
print pd.DataFrame([a,b])