我目前正在做一个业余爱好项目,但我还是坚持在pandas中填充一个数据帧。我有三个数据帧。我的问题:
DataFrame1
中的每个id
,如果列m
等于1
,则将列n
添加到DataFrame3
中的x
。在DataFrame1
和DataFrame2
中的每个id
,如果DataFrame1
中的列c
等于1
,或者{d
等于{c
等于99
具有最高优先级,并将y
设置为99
谁能帮帮我吗?在
DataFrame1
| id | n | m | c |
|--------|------|---|---|
| 577140 | bla1 | 0 | 0 |
| 577140 | bla2 | 0 | 0 |
| 577140 | bla3 | 0 | 0 |
| 577140 | bla4 | 1 | 0 |
| 577140 | bla5 | 0 | 1 |
| 577141 | bla6 | 0 | 0 |
| 577141 | bla7 | 0 | 0 |
| 577141 | bla8 | 1 | 0 |
DataFrame2
| id | d |
|--------|---|
| 577140 | 1 |
| 577141 | 0 |
DataFrame3 (currently)
| id |
|--------|
| 577140 |
| 577141 |
DataFrame3 (needed)
| id | x | y |
|--------|------|---|
| 577140 | bla4 | 1 |
| 577141 | bla8 | 0 |
如果我理解正确的话,您需要两次使用^{} 连接所有3个数据帧,然后有条件地使
y
列与{a2}一起,我们可以传递多个条件尝试使用
merge
:我使用
set
作为“如果DataFrame1中的c列等于1或如果列d是1”逻辑:相关问题 更多 >
编程相关推荐