通过在Python中添加全局变量名和字符串来创建df列名



我有一个全局变量 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 => ...

最新更新