比方说,我有一个数据框df
,其中包含数字列"A", "B", "C"...
以及布尔列"DEFAULT"
。我还有一个特殊列的列表,例如special = ["A", "D", "E", "H", ...]
,以及相应的默认值列表:default = [a, d, e, h, ...]
。我想要做的是:对于DEFAULT
为True
的每一行,将特殊列的值替换为相应的默认值。有条件地用Pandas中的默认值替换几列
当然,我可以通过数据框手动循环,但这很丑,可能很慢。
我已经试过各种直观的方式,如:
df[df.DEFAULT][special] = default
或
df[special] = df[special].where(not df.DEFAULT, default, axis = 1)
但没有我尝试的工作。我也读了很多类似的问题,但似乎没有任何工作适合我。对不起,如果我错过了正确的。输入数据的
例子:
df = pd.DataFrame(np.random.rand(10,10))
df.columns = list('ABCDEFGHIJ')
df["DEFAULT"] = [False,False,True,False,True,False,False,True,True,False]
special = list("ADGI")
default = [1,2,3,4]
你能后的'pd.DataFrame()'所以我们可以重现吗? –
@Joe R,参见编辑。 – Julien
为什么选择投票? – Julien