Для общего решения для выбора пропущенных значений, если больше столбцов, добавьте новый DataFrame, созданный с помощью DataFrame.drop_duplicates
, выбрав feature
s столбцы и переписав данные в feat2
, поэтому при использовании concat
- все остальные столбцы заменены на пропущенные значения. Последний для правильного заказа добавить DataFrame.sort_values
:
df1 = df.drop_duplicates('feat1')[['feat1','feat2']].assign(feat2='-')
df2 = (pd.concat([df1, df], sort=False, ignore_index=True)
.sort_values('feat1'))
print (df2)
feat1 feat2 var
0 A - NaN
3 A x 0.0
4 A y 1.0
5 A z 2.0
1 B - NaN
6 B x 3.0
7 B y 4.0
8 B z 5.0
2 C - NaN
9 C x 6.0
10 C y 7.0
11 C z 8.0