在循环中串联列值

时间:2019-02-06 16:35:25

标签: python-3.x pandas loops

我有一个包含两列的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

请帮助

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