В учебниках по пандам они не использовали циклы for, они использовали apply(); они создали функции со строкой параметра (почему бы не dataframe df в качестве параметра?). Я пытался сделать то же самое, но это не сработало. В общем, я просто не знаю, как сделать простую вещь в пандах, и надеялся, что кто-нибудь сможет мне показать.
Код: Выделить всё
df = pd.DataFrame({'id': [1, 1, 1], 'week': [1, 1, 2], 'order': [2, 4, 3]})
df['index'] = df.groupby(['id', 'week']).cumcount()+1 #can be many id-s (not only id=1)
df['share'] = df['order']/df.groupby(['id', 'week'])['order'].transform('sum')
df['len'] = (df.groupby(['id', 'week']))['order'].transform('count')
def average_shares(df):
if df['repeats']>2:
df = df[(df['share'])>0.05 & (df['share']
Подробнее здесь: [url]https://stackoverflow.com/questions/79040490/conditions-in-functions-in-pandas[/url]
Мобильная версия