Подсчет Python-панд по групповым неточностям - PullRequest
0 голосов
/ 29 июня 2018
def comment (row):
    if row['STATUS'] == "CANCELLED":
        return "Cancelled"
    elif  strToDate(row['PROCESS_DATE']) < datetime(2018,1,1) or strToDate(row['PROCESS_DATE']) > datetime(2018,2,1):
        return "Date out of Range"
    elif "Lost" in str(row['NOTE']) or "Stolen" in str(row['TRADE_NOTE_TXT']):
        return 'Lost or Stolen'
    else:
        return 'Other'

df['Comment'] = ''

for i, row in df.iterrows():
    df.at[i,"Comment"] = comment(row)

Я использую приведенный выше код для изменения значения df ['Comment'] в зависимости от этих условий. Однако, когда я делаю df.count (), он показывает, что в комментарии есть 7790 значений.

Однако, когда я делаю df.groupby ('Comment'). Size (), результат выглядит следующим образом, что намного больше, чем количество комментариев, которые должны присутствовать.

     Comment
     Cancelled            1171
     Date out of Range    1175
     Lost or Stolen       634
     Other                4810
     dtype: int64

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Может быть, я не совсем понимаю, о чем вы спрашиваете, но эти цифры складываются:

1171 + 1175 + 634 + 4810 = 7790

Это означает, что df.count() и df.groupby('Comment').size() представляют одинаковое количество строк.

0 голосов
/ 29 июня 2018

Чтобы получить ожидаемый ответ, сначала нужно правильно сделать отступ в коде под функцией def comment(row):.

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