2016-09-22 67 views
1

字符串創建DF列名我有一個全局變量 split_ask_min = 'Minimum_Spend' 加入全局變量名,並在Python

我想在我的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'']

我得到一個錯誤

+1

你的問題目前還不清楚,你是否在'df ['split_ask_min_Sum'] = Minimum_Spend_Sum' – EdChum

+0

之後。我在創建變量名稱時遇到了問題。讓我編輯我的問題,使其更清晰。 –

+0

那麼你是否相反:'Minimum_Spend_Sum = df ['split_ask_min_Sum']'?你可以發佈原始數據,代碼和期望的輸出,因爲你的問題確實不清楚 – EdChum

回答

0

,除非你真的需要創建一個變量,使用一個存儲值的字典。

df = {} 
split_ask_min = 'Minimum_Spend' 
df[split_ask_min + '_Sum'] = ... 
print(df) 

否則,你可以使用globals()

globals[split_ask_min + '_Sum'] = ... 

# Minimum_Spend_Sum => ... 
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