Combinar dos tablas (CSV) if (table1 column A == table2 column A)

Tengo dos CSV’s, que se pueden abrir en Números o Excel, estructurados:
| word | num1 |
y
| word | num2 |

si las dos palabras son iguales (como si fueran ‘hola’ y ‘hola’) quiero que se convierta en:
| word | num1 | num2 |

aquí hay algunas fotos:

tabla 1Tabla 2

Así como para la fila 1, ya que ambas palabras son iguales, ‘VERDADERO’, quiero que se convierta en algo así como
| TRUE | 5.371748 | 4.48957 |

    Ya sea a través de un pequeño script, o si hay alguna característica / función que estoy pasando por alto.
    ¡Gracias!

    Utilice un dict:

     with open('file1.csv', 'rb') as file_a, open('file2.csv', 'rb') as file_b: data_a = csv.reader(file_a) data_b = dict(csv.reader(file_b)) # <-- dict with open('out.csv', 'wb') as file_out: csv_out = csv.writer(file_out) for word, num_a in data_a: csv_out.writerow([word, num_a, data_b.get(word, '')]) # <-- edit 

    (no probado)

    Para csv , siempre busco los pandas biblioteca de análisis de datos. http://pandas.pydata.org/

     import pandas as pd df1 = pd.read_csv('file1.csv', names=['word','num1']) df2 = pd.read_csv('file2.csv', names=['word','num2']) df3 = pd.merge(df1, df2, on='word') df3.to_csv('merged_data.csv') 

    Creo que lo que estás buscando es zip , para permitirte recorrer los dos CSV en el paso de locking:

     with open('file1.csv', 'rb') as f1, open('file2.csv', 'rb') as f2: r1, r2 = csv.reader(f1), csv.reader(f2) with open('out.csv', 'wb') as fout: w = csv.writer(fout) for row1, row2 in zip(r1, r2): if row1[0] == row2[0]: w.writerow([row1[0], row1[1], row2[1]]) 

    No estoy seguro de lo que querías que sucediera si no son iguales. ¿Tal vez insertar ambas filas, así?

      else: w.writerow([row1[0], row1[1], '']) w.writerow([row2[0], '', row2[1]])