我正在寻找一种更快的方法,以将第一列的值连接到第二列的所有值。
这可以通过遍历所有值来实现,是的,但是我的数据集很大,并且循环需要一段时间才能完成。
这是一个复制的示例:
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
我不太能说出要搜索的正确术语。
可能有经过验证的方法可以实现此目的,也可以采用熊猫方法。回答或链接到类似问题将不胜感激。
预先感谢:)
答案 0 :(得分:4)
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