newvals[:, (df.columns.get_loc('C'))] = 'c'
out = np.insert(arr, idx + 1, newvals, axis=0)
df_index = np.insert(np.arange(arr.shape[0]), idx + 1, idx, axis=0)
df_out = pd.DataFrame(out, index=df_index)
Inserting a row into a pandas dataframe based on row value?