Я новичок в Pandas и пытаюсь понять, как создавать/использовать функции, выполнять простые операторы if-else. Я написал следующую функцию Average_shares(), но она работает не так, как я ожидал (потому что она должна быть написана для строк, а не для столбцов, но я этого не понимаю/не знаю, как исправить следующий код. В простом мире, где нет панд, я бы написал for i in range(len(column)): выполните следующие действия. В учебниках по пандам они не использовали циклы, они использовали 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']) & (df['share']
Подробнее здесь: [url]https://stackoverflow.com/questions/79040490/conditions-in-functions-in-pandas[/url]