Ошибка: 'DatetimeArray' with dtype datetime64[ns] does not support reduction 'sum'. Хотя даты в столбцах нет

mihasikpas

Новичок
Пользователь
Янв 31, 2024
3
0
1
  1. Операционную систему MacOS
  2. Версия Python 3.11.5
  3. Библиотеки: pandas, numpy,
  4. Код:
    df_null_pay = []
    for i in df_city_reg['id_trading_point'].unique():
        
        df_loc = df_city_reg[df_city_reg['id_trading_point']==i]
        sum_a = df_city_reg[(df_city_reg['id_trading_point']==i) & (df_city_reg['nflag_test']==0)].sum()['amt_payment'].sum()
        sum_b = df_city_reg[(df_city_reg['id_trading_point']==i) & (df_city_reg['nflag_test']==1)].sum()['amt_payment'].sum()
        if (sum_a == 0) | (sum_b == 0):
            df_null_pay.append(i)
    print(df_null_pay)
  5. Выдает ошибку:
    TypeError Traceback (most recent call last)
    Cell In[80], line 5
    2 for i in df_city_reg['id_trading_point'].unique():
    4 df_loc = df_city_reg[df_city_reg['id_trading_point']==i]
    ----> 5 sum_a = df_city_reg[(df_city_reg['id_trading_point']==i) & (df_city_reg['nflag_test']==0)].sum()['amt_payment'].sum()
    6 sum_b = df_city_reg[(df_city_reg['id_trading_point']==i) & (df_city_reg['nflag_test']==1)].sum()['amt_payment'].sum()
    7 if (sum_a == 0) | (sum_b == 0):

    и конец:TypeError: 'DatetimeArray' with dtype datetime64[ns] does not support reduction 'sum'
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Она есть, посмотри описание фрейма
print(df_citi_reg.info())
 

mihasikpas

Новичок
Пользователь
Янв 31, 2024
3
0
1
Она есть, посмотри описание фрейма
print(df_citi_reg.info())
Может я пока не совсем понимаю, но столбцы по которым произвожу суммирование имеют тип флот
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 55356 entries, 0 to 55355
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 id_client 55356 non-null float64
1 id_trading_point 55356 non-null float64
2 city 55356 non-null object
3 id_order 55356 non-null int64
4 amt_payment 55356 non-null float64
5 dtime_ad 55356 non-null datetime64[ns]
6 nflag_test 55356 non-null int64
7 nflag_pay 55356 non-null int64
dtypes: datetime64[ns](1), float64(3), int64(3), object(1)
memory usage: 3.4+ MB
None
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Ты дважды используешь sum в одной строке, оставь только тот, что в конце, а то ты делаешь сначала выбор строк, потом суммируешь, а потом выбираешь столбец, надо сначала выбрать столбец, а потом искать сумму
 

mihasikpas

Новичок
Пользователь
Янв 31, 2024
3
0
1
Ты дважды используешь sum в одной строке, оставь только тот, что в конце, а то ты делаешь сначала выбор строк, потом суммируешь, а потом выбираешь столбец, надо сначала выбрать столбец, а потом искать сумму
Спасибо за помощь!!!🤝
 

Форум IT Специалистов