-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我不知道。我以为你得到了一个错误。我误解了你的评论。我的错。 –