与熊猫自我加入

核型

我想对Pandas数据框执行自联接,以便将某些行附加到原始行。每行都有一个标记“ i”,指示应在右侧添加哪一行。

d = pd.DataFrame(['A','B','C'], columns = ['some_col'])
d['i'] = [2,1,1]

In [17]: d
Out[17]: 
  some_col  i
0        A  2
1        B  1
2        C  1

所需的输出:

  some_col  i some_col_y
0        A  2          C
1        B  1          B
2        C  1          B

也就是说,第2行附加到第0行,第1行附加到第1行,第1行附加到第2行(如i所示)。

我的想法是

pd.merge(d, d, left_index = True, right_on = 'i', how = 'left')

但是,它总共会产生其他东西。如何正确做?

海盗

joinon='i'

d.join(d.drop('i', 1), on='i', rsuffix='_y')

  some_col  i some_col_y
0        A  2          C
1        B  1          B
2        C  1          B

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章