Пример моего фрейма данных.
np.random.seed(66)
df = pd.DataFrame(
np.random.rand(5, 3),
columns=list('ABC'),
index=['R{}'.format(i) for i in range(5)]
)
df[df < .5] = None
df.head()
A B C
R0 NaN NaN NaN
R1 0.67 NaN NaN
R2 0.75 0.55 0.51
R3 NaN NaN 0.82
R4 NaN NaN 0.67
Решение для одного столбца
df['A_percent'] = (df.loc[df['A'].notnull(),['A']] * 100).astype(np.int32)
df.head()
A B C A_percent
R0 NaN NaN NaN NaN
R1 0.67 NaN NaN 67.0
R2 0.75 0.55 0.51 75.0
R3 NaN NaN 0.82 NaN
R4 NaN NaN 0.67 NaN
Все ломается, когда я пытаюсь сделать то же самое для нескольких столбцов
df['A_percent', 'B_percent'] = (df.loc[df['A', 'B'].notnull(),['A', 'B']] * 100).astype(np.int32)
Может ли этобыть сделано за один шаг?