Python 如果特定ID的值不存在于另一个ID中,请将带有值的行插入ID
如果其他ID中不存在D1值,而我的df['value']保留为空(不适用),我想更新并插入新行。谢谢你的帮助 输入 预期产出:Python 如果特定ID的值不存在于另一个ID中,请将带有值的行插入ID,python,pandas,numpy,Python,Pandas,Numpy,如果其他ID中不存在D1值,而我的df['value']保留为空(不适用),我想更新并插入新行。谢谢你的帮助 输入 预期产出: D1 ID Value 0.02 1 1.2 0.04 1 1.6 0.06 1 1.9 0.08 1 2.8 0.1 1 0.02 2 4.5 0.04 2 4.1 0.06 2 0.08 2 3.6 0.1 2 0.02 3 2.7 0.0
D1 ID Value
0.02 1 1.2
0.04 1 1.6
0.06 1 1.9
0.08 1 2.8
0.1 1
0.02 2 4.5
0.04 2 4.1
0.06 2
0.08 2 3.6
0.1 2
0.02 3 2.7
0.04 3 2.9
0.06 3 2.4
0.08 3 2.1
0.1 3 1.9
不幸的是,我写的代码有点偏离或者只是得到了多个错误消息,不像我的其他问题,我没有例子来说明。使用
取消堆栈和堆栈。链额外的排序索引
和重置索引
以实现所需的顺序
df_final = (df.set_index(['D1', 'ID']).unstack().stack(dropna=False)
.sort_index(level=[1,0]).reset_index())
Out[952]:
D1 ID Value
0 0.02 1 1.2
1 0.04 1 1.6
2 0.06 1 1.9
3 0.08 1 2.8
4 0.10 1 NaN
5 0.02 2 4.5
6 0.04 2 4.1
7 0.06 2 NaN
8 0.08 2 3.6
9 0.10 2 NaN
10 0.02 3 2.7
11 0.04 3 2.9
12 0.06 3 2.4
13 0.08 3 2.1
14 0.10 3 1.9
请您进一步解释一下,因为我在ID列中没有看到任何D1,当然0.02不在ID中。问题已经回答,是D1的值链接到一个ID,所以如果另一个ID没有完全相同的D1值,那么我需要将其填充到当前ID中。希望这有帮助
df_final = (df.set_index(['D1', 'ID']).unstack().stack(dropna=False)
.sort_index(level=[1,0]).reset_index())
Out[952]:
D1 ID Value
0 0.02 1 1.2
1 0.04 1 1.6
2 0.06 1 1.9
3 0.08 1 2.8
4 0.10 1 NaN
5 0.02 2 4.5
6 0.04 2 4.1
7 0.06 2 NaN
8 0.08 2 3.6
9 0.10 2 NaN
10 0.02 3 2.7
11 0.04 3 2.9
12 0.06 3 2.4
13 0.08 3 2.1
14 0.10 3 1.9