Если значение определенного идентификатора не существует в другом идентификаторе, вставьте строку со значением в идентификатор - PullRequest
1 голос
/ 05 февраля 2020

Я хотел бы обновить и вставить новую строку, если значение 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

К сожалению, коды, которые я написал, были отключены или просто получают несколько сообщений об ошибках, в отличие от других моих вопросов, у меня нет примеров для показа.

1 Ответ

2 голосов
/ 05 февраля 2020

Используйте unstack и stack. Цепочка дополнительная sort_index и reset_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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...