Python群计数不准确

2024-04-24 08:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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()时,它显示comment中有7790个值

但是,当我执行df.groupby('Comment').size()时,输出如下所示,这远远大于应该出现的注释数

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

Tags: orindfdatetimedatereturncommentprocess
2条回答

您需要首先在def comment(row):函数下正确地缩进代码,以获得您期望的答案

也许我不明白你在问什么,但这些数字加起来:

1171 + 1175 + 634 + 4810 = 7790

意思是df.count()df.groupby('Comment').size()表示相同数量的行

相关问题 更多 >