I would like to represent a row in a pandas DataFrame with a formatted string referencing the columns. The best method I have found is to cast the row to a dict and then string.format()
Assuming a pd.DataFrame df with the columns 'specimen' and 'date':
r = df.loc[0]
print("{specimen}_{date}".format(**r.to_dict()))
can be used to apply the format string using the column data.
This does not seem very efficient. Is there must be a better way to do this in pandas directly without converting to a dict while maintaining the flexibility of explicitly naming columns in the format string?
Update:
The ultimate purpose is to generate tick labels for a matplotlib plot. Using the answer below:
plot.set_yticklabels(["{specimen}_{date}".format(**r) for i,r in df.iterrows()])