Если вы не хотите использовать какой-либо объект, вы можете использовать setattr()
внутри вашего текущего модуля:
import sys
current_module = module = sys.modules[__name__] # i.e the "file" where your code is written
setattr(current_module, 'variable_name', 15) # 15 is the value you assign to the var
print(variable_name) # >>> 15, created from a string
Вы были почти там, просто пропустили .groupby
:
df['PrevValue'] = df.sort_values(['UUID', 'RANK']).groupby('UUID').Value.shift(1)
print(df)
Date UUID Value RANK PrevValue
0 01/03/2019 A 0 2 1.0
1 28/02/2019 A 1 1 NaN
2 28/02/2019 B 2 2 3.0
3 26/02/2019 B 3 1 NaN
4 24/02/2019 C 4 2 1.0
5 21/02/2019 C 1 1 NaN