【发布时间】:2020-03-11 13:17:32
【问题描述】:
我有一个包含 5 列的数据框,我想根据其他 4 列更新一列,数据框看起来像这样
from via to x y
3 2 13 in out
3 2 15 in out
3 2 21 in out
13 2 3
15 2 13
21 2 13
1 12 2
1 12 2
1 12 22
2 12 1 in
2 12 22 in out
22 12 2
这个想法是根据其他四列的值填充 X 列,顺序应该是这样的: 我必须检查 x 和 y 是否有值,如果是,那么我必须使用 (from ,via) 的相应值,并将所有行中的值与 (to, via) 的值进行比较,如果它们相同,所以我必须将对应于 (from, via) 的 Y 的值分配给具有 (to, via) 相等值的行的 X 列 所以在这个例子中,我可以看到 (from=3, Via=2 有 x 和 y 值,所以我将取 (from=3, Via=2) 的值并将其与 (to, via ) 在所有行中,然后我可以在具有 (to=3, via=10) 的行上分配 (y=out) 的值
最终的结果应该是这样的:
from via to x y
3 2 13 in out
3 2 15 in out
3 2 21 in
13 2 3 out
15 2 13 out
21 2 13
1 12 2 out
1 12 2 out
1 12 22 out
2 12 1 in
2 12 22 in out
22 12 2 out
如何在 pandas 数据框中做到这一点?
【问题讨论】:
-
您应该输入一些设置数据框的代码。如果您不知道如何编写代码,即使是算法的伪代码也会有所帮助。您可能会在 stackoverflow.com/questions/16476924/… 阅读有关迭代数据框中的行的信息
-
我不确定我是否理解您的问题。您提到的示例还谈到了from=3,Via=10,但是没有via=10 的行。正如@DavidGaertner 提到的,您可以发布算法或以更好的方式编写逻辑吗?
-
@davidbilla 不好意思,我写错了,应该是via=2,我现在编辑了,我觉得会更清楚
标签: python pandas dataframe multiple-columns