Используйте numpy.repeat
, чтобы добавить строки, и Series.duplicated
, чтобы установить цену.
df2 = pd.DataFrame(df.values.repeat(df.status.eq(0)+1, axis=0), columns=df.columns)
df2.loc[df2.name.duplicated(), 'price'] *= -1
df2
name age status price
0 frank 12 1 100
1 jack 33 0 190
2 jack 33 0 -190
3 joe 22 1 200
Если вам нужно также замаскировать NaN в столбце возраста, вы можете сделать это с помощью Series.mask
.
df2.age.mask(df2.name.duplicated())
0 12
1 33
2 NaN
3 22
Name: age, dtype: object
<час> Полный код.
df2 = pd.DataFrame(df.values.repeat(df.status.eq(0)+1, axis=0), columns=df.columns)
isdup = df2.name.duplicated()
df2.loc[isdup, 'price'] *= -1
df2['age'] = df2['age'].mask(isdup)
df2
name age status price
0 frank 12 1 100
1 jack 33 0 190
2 jack NaN 0 -190
3 joe 22 1 200
Даже если вы отметили классы, чтобы они не отображались на панели инструментов, Visual Studio по-прежнему необходимо сканировать все ваши открытые проекты, чтобы обнаружить это. Чтобы ускорить процесс, вам нужно отключить настройку для автоматического заполнения панели инструментов. Это может немного раздражать, если вы много работаете с набором инструментов, но это сильно ускорит процесс.
Параметр находится в Сервис -> Параметры -> Конструктор Windows Forms, установите «AutoToolboxPopulate» в значение false.
То же самое происходит с моим 2005 в дополнение к этому devenv. exe зависает случайным образом
, и даже после «сборки» иногда пользовательские элементы управления имеют тенденцию портить основную форму
, недавно вы проверяли и дефрагментировали вирус?
Первый ответ: «Настройка находится в Инструменты -> Параметры -> Конструктор Windows Forms, установите для AutoToolboxPopulate значение false» у меня сработало. Раньше дизайнер зависал как минимум на минуту, пытаясь сфокусироваться на элементе управления в форме при первом просмотре формы в режиме конструктора. Теперь это займет всего несколько секунд. (У меня не было достаточно очков репутации, чтобы напрямую комментировать этот ответ)