假设我有一个Python数据框:
A
B
C
A
B
...和第二个 Dataframe
A 3
A 2
A 4
B 5
B 2
B 8
B 7
C 1
C 5
我想将第二个 Dataframe 连接到第一个 Dataframe ,但是对于第一个帧中的每个值,连接应该是从第二个 Dataframe 的第二行中随机选择,只从第一列是相同值的地方选择。
因此,例如,对于第一个 Dataframe 中的第一个值A,我会在第二个表中查找,它会从第二行中的第一行值为A的值中随机选择-即随机选择3,2或4中的一个。对于第二个值B,我会从5,2,8或7中随机选择。最终结果我只是想要一个 Dataframe ,如:
A 2
B 8
C 1
B 7
A 4
2条答案
按热度按时间b4lqfgs41#
假设这是你的开始:
选项一:合并已计数密钥
一个简单的方法是shuffle
df2
,向两个dataFrames添加一个增量键,然后合并:注意:设置
np.random.seed
用于确定性 Shuffle选项2:示例组和concat
另一个选项是groupby df2、sample groups和concat
这里需要注意的是,顺序并不保留。
lnvxswe22#
您可以创建一个函数,从第二个 Dataframe 中选择一个随机值,然后在第一个 Dataframe 中使用
df.apply
: