Вставка нечисловых строк в массив данных MultiIndex - PullRequest
1 голос
/ 06 марта 2020

У меня есть pandas фрейм данных с несколькими объектами, в который я хотел бы вставить строки nans, соответствующие только первому объекту. Другими словами, я хотел бы преобразовать что-то вроде этого: enter image description here

в это: enter image description here

Как я буду при работе с большими наборами данных важна скорость.

1 Ответ

2 голосов
/ 06 марта 2020

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