如果其他ID中不存在D1值,而我的df ['Value']留为空白(N / A),我想更新并插入新行。感谢您的帮助。

输入值

D1     ID   Value
0.02   1    1.2
0.04   1    1.6
0.06   1    1.9
0.08   1    2.8
0.02   2    4.5
0.04   2    4.1
0.08   2    3.6
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


预期产量:

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


不幸的是,与我没有其他示例要显示的其他问题不同,我编写的代码相距甚远,或者仅收到多个错误消息。

最佳答案

使用unstackstack。链接其他sort_indexreset_index以实现所需的顺序

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

关于python - 如果特定ID的值在另一个ID中不存在,则将具有ID值的行插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60067398/

10-12 21:45