Я хотел бы создать следующий фрейм данных:
df = pd.DataFrame({
'A': ['0','0','0','8.020833015','8.009259224','8.003472328','8.020833015','0','0','5','4.994213104','0','0','0','8.012152672','8.009259224','0'],
'Step_ID': ['Step_1','Step_1','Step_1','Step_2','Step_2','Step_2','Step_2','Step_3','Step_3','Step_4','Step_4','Step_5','Step_5','Step_5','Step_6','Step_6','Step_7']})
print (df)
У меня есть столбец A, и в соответствии с этими значениями я хотел бы для установки значений в столбце Step_ID.
Step_ID - начинается с Step_1. Затем, если число больше, то Step_2 (для всех чисел больше 0, пока не будут достигнуты нулевые значения). Затем нулевым значениям следует присвоить Step_3 и т. Д.
# add a Step ID
df = pd.DataFrame({
'A': ['0','0','0','8.020833015','8.009259224','8.003472328','8.020833015','0','0','5','4.994213104','0','0','0','8.012152672','8.009259224','0']})
step = 0
value = None
def get_step(x):
global step
global value
if x != value:
value = x
step += 1
return f'Step_{step}'
df['Step_ID'] = df['A'].apply(get_step)
df.to_csv('test.csv' , index=None)
Приведенный выше код делает нечто подобное, но только с уникальными номерами. Должно ли быть еще одно «если» - если значение> 0 для выполнения желаемой функции?