ValueError: недопустимый литерал для int () с основанием 10: '2017-03-01' - PullRequest
0 голосов
/ 22 января 2020

Я написал следующее - все это прекрасно работает:

## ID active customers
df_active_customers = df.groupby(['VHOST','SCREENING_SCREEN_MONTH'])['TOTAL_REV'].sum().reset_index() 
## Create retention rate matrix
df_retention = pd.crosstab(df_active_customers['VHOST'],df_active_customers['SCREENING_SCREEN_MONTH']).reset_index()
df_retention.head()

Теперь я пытаюсь создать массив, который получает значения:

# create an array which keeps retained and total user count for each month

months = df_retention.columns[2:]
retention_array = []
for i in range(len(months)-1):
    retention_data = {}
    selected_month = months[i+1]
    prev_month = months[i]
    retention_data['SCREENING_SCREEN_MONTH'] = int(selected_month)
    retention_data['TOTAL_USER_COUNT'] = df_retention[selected_month].sum() 
    retention_data['RETAINED_USER_COUNT'] = df_retention[(df_retention[selected_month]>0) & (df_retention[prev_month]>0)][selected_month].sum()
    retention_array.append(retention_data)

#convert the array to dataframe and calculate Retention Rate
df_retention = pd.DataFrame(retention_array)
df_retention['RETENTION_RATE'] = df_retention['RETAINED_USER_COUNT']/df_retention['TOTAL_USER_COUNT']
df_retention

и я получить эту ошибку: ValueError: invalid literal for int() with base 10: '2017-03-01'

Я пытался изменить SCREENING_SCREEN_MONTH с объекта на отметку времени, но я получаю эту ошибку: TypeError: int() argument must be a string, a bytes-like object or a number, not 'Timestamp'

Есть мысли? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...