将列值连接到另一列pandas中的所有值的更快方法,对第一列中的所有值执行

时间:2019-11-07 16:04:30

标签: python pandas

我正在寻找一种更快的方法,以将第一列的值连接到第二列的所有值。

这可以通过遍历所有值来实现,是的,但是我的数据集很大,并且循环需要一段时间才能完成。

这是一个复制的示例:

import pandas as pd
df = pd.DataFrame({'col_1':['a','b','c'], 'col_2':['d','e','f']})
df
  col_1 col_2
0     a     d
1     b     e
2     c     f

我想要一个返回的新数据框:

 col_1
0   a d
1   a e
2   a f
3   b d
4   b e
5   b f
6   c d
7   c e
8   c f

我不太能说出要搜索的正确术语。

可能有经过验证的方法可以实现此目的,也可以采用熊猫方法。回答或链接到类似问题将不胜感激。

预先感谢:)

2 个答案:

答案 0 :(得分:4)

使用DataFrame.merge

df['key'] = 1
mrg = df[['col_1', 'key']].merge(df[['col_2', 'key']], on='key').drop(columns='key')
  col_1 col_2
0     a     d
1     a     e
2     a     f
3     b     d
4     b     e
5     b     f
6     c     d
7     c     e
8     c     f

答案 1 :(得分:2)

在此处使用itertools.product

import itertools
pd.DataFrame([' '.join(i) for i in itertools.product(df.col_1,df.col_2)],columns=['col1'])

  col1
0  a d
1  a e
2  a f
3  b d
4  b e
5  b f
6  c d
7  c e
8  c f