我需要帮助,为特定匹配添加2行。 鉴于df:
ID Name1 Name2 Value
1 xy a 1
1 yz b 2
1 zz c 3
2 xy a 4
2 yz b 5
3 zz c 6
结果:(Name1 = yz,Name2 = b)的值=(Name1 = yz,Name2 = b)的值+(Name1 = xy,Name2 = a)的值
ID Name1 Name2 Value
1 xy a 1
1 yz b 3 (2+1)
1 zz c 3
2 xy a 4
2 yz b 9 (5+4)
3 zz c 6
我认为我们需要先按id分组然后再添加。我通常使用np.where来操作列,但在这种情况下不确定它如何适用于行。
非常感谢!
答案 0 :(得分:1)
我建议您添加一个新列:
df["new_column"] = np.where(df["Name1"] == "yz", df["Value"] + df["Value"].shift(-1),0)
如果你想要df [“Value”]中的当前值,如果不满足条件,那么只需执行以下操作:
df["new_column"] = np.where(df["Name1"] == "yz", df["Value"] + df["Value"].shift(-1),df["Value"])