将合作伙伴分为两列

时间:2014-08-15 13:01:05

标签: python pandas

我有这样的数据集:

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流来完成吗?

3 个答案:

答案 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])