我有一个全局变量
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'']
我收到了错误
答案 0 :(得分:1)
要在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
答案 1 :(得分:0)
除非您确实需要创建变量,否则请使用字典来存储值。
substring
否则您可以使用function capitalize(str) {
return str.charAt(0).toUpperCase() + str.substring(1);
}
var thingy = {
charAt: function() {
return {
toUpperCase: function() {
return 40;
}
}
},
substring: function() {
return 2;
}
};
console.log(capitalize(thingy)); // 42
df = {}
split_ask_min = 'Minimum_Spend'
df[split_ask_min + '_Sum'] = ...
print(df)