Я пытаюсь assign
значения в pandas
df
.В частности, для df
ниже я хочу использовать Column['On']
, чтобы определить, сколько значений происходит в настоящее время.Затем я хочу назначить эти значения в группах 3
.Значения;
1-3 = 1
4-6 = 2
7-9 = 3 etc
Это может доходить до 20-30 значений.Я рассмотрел np.where, но это не очень эффективно, и я возвращаю ошибку.
import pandas as pd
import numpy as np
d = ({
'On' : [1,2,3,4,5,6,7,7,6,5,4,3,2,1],
})
df = pd.DataFrame(data=d)
Этот вызов работает:
df['P'] = np.where(df['On'] == 1, df['On'],1)
Но если я хочу применить это к другим значениям, я получаю сообщение об ошибке:
df = df['P'] = np.where(df['On'] == 1, df['On'],1)
df = df['P'] = np.where(df['On'] == 2, df['On'],1)
df = df['P'] = np.where(df['On'] == 3, df['On'],1)
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices