我有一个全局变量
split_ask_min = 'Minimum_Spend'
我想在我的df中创建一个新变量,并将其命名为"Minimum_Spend_Sum",并使其成为Minimum_Spend的总和。
var_programs['split_ask_min+ _Sum'] = var_programs[split_ask_min].groupby(X['NAME']).transform('sum')
我有麻烦创建变量名称。应该是
split_ask_min+ '_Sum'
等于
Minimum_Spend_Sum
但是如果我写
var_programs['split_ask_min+ '_Sum'']
我得到一个错误
要在df中创建一个新列,您可以传递一个构造字符串来为df添加一个新列:
In [239]:
split_ask_min = 'Minimum_Spend'
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc'))
df[split_ask_min + '_Sum'] = 0
df
Out[239]:
a b c Minimum_Spend_Sum
0 -0.113483 -0.487551 0.276176 0
1 0.143454 -1.322578 -2.040297 0
2 -0.100320 0.716255 1.109432 0
3 -1.260516 -0.560957 0.007871 0
4 0.497407 -2.031782 0.933199 0
除非您确实需要创建一个变量,否则请使用字典来存储该值。
df = {}
split_ask_min = 'Minimum_Spend'
df[split_ask_min + '_Sum'] = ...
print(df)
否则可以使用globals()
globals[split_ask_min + '_Sum'] = ...
# Minimum_Spend_Sum => ...