假设我有一个df
我想要一个像这样的df
在python或R中我该怎么做呢?这在excel中很容易,只需要一个简单的if语句,例如:c5 =IF(c2 =“X”,“ccc”,c4)。
我原以为这在R中也很简单,但我尝试了df〈- df %〉% mutate(c4 = ifelse(c2 = 'X',paste(c3,c3,c3),c4)),它用NA填充了所有其他值:
为什么会发生这种情况,我该如何解决?
理想的情况下,我希望在python中实现,我已经尝试了dfply的mutate和ifelse,类似于上面的,并且使用了panda的loc函数,但是都不起作用。
这感觉应该很简单--有什么明显的东西我漏掉了吗?
3条答案
按热度按时间hfyxw5xn1#
我们可能需要
R
中的strrep
数据
d8tt03nd2#
这读起来像
"对于
c4
列:* 其中 *c2
值 * n * or * e * 等于"X",保持原样;否则,放入重复3次的c3
值"。运行示例:
j13ufse23#
我想你可以在Pandas身上做:
查找“c2”为“X”的行并找到“c3”列,重复此操作3次,然后使用.loc就地修改“c4”列