это просто пример данных с моим кодом.я хочу нормализации общего столбца в другом столбце.В настоящее время у меня есть около 2000 групп, для этого требуется 15 минут на нормализацию и fgroup.
Какие способы сократить время.
import pandas as pd
import numpy as np
np.random.seed(1234)
n = 1500000
df = pd.DataFrame()
df['group'] = np.random.randint(1700, size=n)
df['ID'] = np.random.randint(5, size=n)
df['Total'] = np.random.randint(400, size=n)
df['Normalized_total'] = df.groupby('group')['Total'].apply(lambda x: (x-x.min())/(x.max()- x.min()))
def norm_group(df):
if df['Normalized_total'] > 0.70 and df['group'] > 100 and df['ID'] > 3:
return 3
elif df['Normalized_total'] > 0.5 and df['group'] < 100 and df['ID'] < 3:
return 2
else:
return 1
df['fgroup'] = df.apply(norm_group, axis=1)
Спасибо