-2
我想是Python的我的代碼,但無法弄清楚如何做到:我如何通過表達式作爲Python中的函數關鍵字
dfSort.assign(i+5=pd.Series(dfWork))
其中DFSORT是一個數據幀和Pd是大熊貓進口。當然,i+5
是一個表達式,因此不能作爲列名傳遞。但我想在代碼中動態分配一個列名稱(稱爲i+5
)。以其他方式做到這一點的唯一方法是(這可能很麻煩):
if (i+5)== 5:
dfSort = dfSort.assign(a=pd.Series(dfWork, index=dfSort.index.values))
elif (i+5)==6:
dfSort = dfSort.assign(b=pd.Series(dfWork, index=dfSort.index.values))
elif (i+5)==7:
dfSort = dfSort.assign(c=pd.Series(dfWork, index=dfSort.index.values))
elif (i+5)==8:
dfSort = dfSort.assign(d=pd.Series(dfWork, index=dfSort.index.values))
有沒有辦法做到這一點,如第一個代碼塊沒有if語句?
這不起作用:
Colname = {5: 'a',6 : 'b', 7 : 'c', 8 : 'd'}
dfSort = dfSort.assign(Colname[i+5]=pd.Series(dfWork))
嗨,好的,謝謝。我試過這個'dfSort = dfSort.assign(** Colname [i + 4] = pd.Series(dfWork))'原來我需要添加和使用Colon。 – DrizztVD
@DrizztVD是的。你需要解開一個字典。這是一般的解決方案,並且會起作用。如果有幫助,請考慮[標記此答案接受](https://stackoverflow.com/help/someone-answers)。謝謝! –
@DrizztVD我不知道。我以爲你得到了一個錯誤。我誤解了你的評論。我的錯。 –