title: Concatenate Pandas column name to column value
body: <p>Is there any efficient way to concatenate Pandas column name to its value. I will like to prefix all my DataFrame values with their column names.</p>
  
  <p>My current method is very slow on a large dataset:</p>
  
  <pre class="lang-py prettyprint-override"><code>
  import pandas as pd
  
  # test data 
  
  df = pd.read_csv(pd.compat.StringIO('''date value data
  01/01/2019 30 data1
  01/01/2019 40 data2
  02/01/2019 20 data1
  02/01/2019 10 data2'''), sep=' ')
  
  # slow method 
  
  dt = [df[c].apply(lambda x:f'{c}_{x}').values for c in df.columns]
  
  dt = pd.DataFrame(dt, index=df.columns).T
  </code></pre>
  
  <p>The problem is that list compression and copying of data slows the transformation on a large dataset with lots of columns.</p>
  
  <p>Is there are better way to prefix columns name to values?</p>