Мы можем сделать shift
data.shift(axis=1)*data
Обновление 1
s=data.shift(axis=1)*data
for x in list(s):
print(s.loc[:,s])
Обновление 2
for x in list(data):
print(data.loc[:,x],data.shift(axis=1).loc[:,x])
Обновление 3
import itertools
t=list(itertools.combinations(range(df.shape[1]), 2))
for x in t:
print(data.iloc[:,x[0]],data.iloc[:,x[1]])