0
我有以下阵列:Python的大熊猫:改变一列基于其他动态
Key, Value
Up, a
Up, b
Up, b_regen
Up, c_regen
Down, a
Down, b
Down, b_regen
Down, c
其中value == * _regen变化键(按键)_regen *是通配符
输出将是:
Up, a
Up, b
Up_regen, b_regen
Up_regen, c_regen
Down, a
Down, b
Down, c
Down_regen, b_regen
我有这个迄今为止得到:
x = df['Key'].values[df['Values'].values == 'b_regen'] = 'Up_regen'
这可行,但它不是动态的。我需要上/下_regen部分不被硬编码如上。 理想情况下,'b_regen'值也不会被硬编码,并会查找其中包含'_regen'的任何变量。不过,我认为如果将它变成函数,我可以得到解决方法。
您是否知道如果可能se这样可以将def is_regen函数中的'_regen'作为变量传递给硬编码? – 2014-09-19 17:26:25
当然,你的函数只需要2个参数,'def has_substring(s,end):return s [-len(end):] == end' – Mike 2014-09-19 17:51:34
是的,但是如何在apply函数中真正传递参数。你不能简单地使用a.loc [a ['value']。apply(has_substring(s,“regen”)),'key'] + ='_regen'。在apply函数中,参数通过“args =”参数传递,就像这样a.loc [a ['value']。apply(func = has_substring args =“regen”,'key'] + ='_regen' – 2014-09-19 18:30:46