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
答案 0 :(得分:1)
也许我对您要问的内容感到困惑,但是这些数字加起来:
1171 + 1175 + 634 + 4810 = 7790
意味着df.count()
和df.groupby('Comment').size()
代表相同数量的行。
答案 1 :(得分:-1)
您首先需要在def comment(row):
函数下正确缩进代码,以获得所需的答案。