我有一个包含两列的csv文件:
col1 col2
----- | -----
link1 unix=number1
link2 unix=number2
link3 unix=number3
我需要什么
我需要将col1中的每个值与col2中的每个值连接起来,以获得以下结果:
ecol1 col2 col3
----- | ----- | ----
link1 unix=number1 link1unix=number1
link2 unix=number2 link1unix=number2
link3 unix=number2 link1unix=number3
link4 NAN link2unix=number1
link5 NAN link2unix=number2
link6 NAN link2unix=number3
etc ..
这是我的代码,它不起作用:
i = 0
while True:
df= pd.read_csv('file.csv', skiprows=lambda x: x in range(0,i))
for i, row in df.iterrows():
row = df['col1'] + df['col2']
i+=1
请帮助
答案 0 :(得分:2)
使用:
import itertools
df['col3']=[''.join(i) for i in list(itertools.product(df['col1'],df['col2']))]
编辑:
l= [''.join(i) for i in list(itertools.product(df1.col1,df1.col2))]
df=df.reindex(range(len(l)))
df['col3']=l
print(df)
col1 col2 col3
0 a x ax
1 b y ay
2 c z az
3 NaN NaN bx
4 NaN NaN by
5 NaN NaN bz
6 NaN NaN cx
7 NaN NaN cy
8 NaN NaN cz