title: neo4j cypher SET to each edge attribute from numpy array
body: <p>If I have a cypher query (using <code>py2neo</code>):</p>
  
  <pre><code>edges = graph.run("MATCH (r:edge) RETURN r.col1 r.col2 r.col3").to_data_frame()
  </code></pre>
  
  <p>and this returns a dataframe of columns.</p>
  
  <p>Then I do some operations in python and pass the dataframe through a ML algorithm to make some predictions, so ultimately I end up with a prediction for every edge in <code>edges</code> - let's call that <code>y_predict</code> (which has the same length as <code>edges</code>).</p>
  
  <p>Now I want to take this new array/list <code>y_predict</code> and set a new attribute on each of the edges that were just returned. But I just want the first value in <code>y_predict</code> to be assigned to this attribute on the first edge in <code>edges</code>, and the second to the second, and so on...</p>
  
  <p>If I run:</p>
  
  <pre><code>edges = graph.run(f"MATCH (r:edge) \
  SET r.att1 = {y_predict}")
  </code></pre>
  
  <p>this will set the entire list to every edge in <code>edges</code> instead of each value individually.</p>
  
  <p>Is there a way to do this in cypher?</p>