Handling Concat and Shift Feature in Pandas for Data Science
As was pointed out by @Stephan Rauch in his comment, the names of the columns are stored in dataframe.columns - the OP had a typo.

Below is a working example with dummy data, getting the same output as the user - using instead a little loop to compute the shifted values.

from pandas import DataFrame

prices = dict(
    col1=[0, 1, 2, 3, 4, 5, 6],
    col2=[2, 3, 4, 5, 6, 7, 8],
    col3=[5, 6, 7, 8, 9, 10, 11],
    col4=[12, 13, 14, 15, 16, 17, 18])

dataframe = DataFrame.from_dict(prices)
print(dataframe)
new_col_names = ['t-2', 't-1', 't', 't+1']
dataframe.columns = new_col_names
print(dataframe)

# Number of columns we have
N = len(dataframe.columns)

for n, col in enumerate(dataframe.columns):
    shift_by = N - n - 1  # don't shift the final column
    dataframe[col] = dataframe[col].shift(periods=shift_by, axis=0)

print(dataframe)

# If desired, remove the new NaNs that appear in the first
final_dataframe = dataframe.drop(labels=dataframe.index[:N - 1], axis='index')
print(final_dataframe)