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
发布于 2018-06-30 03:53:14
也许我搞不懂你问的是什么,但这些数字加起来:
1171 + 1175 + 634 + 4810 = 7790
这意味着df.count()
和df.groupby('Comment').size()
表示相同的行数。
发布于 2018-06-30 03:41:47
您需要首先在def comment(row):
函数下正确缩进您的代码,以获得您期望的结果。
https://stackoverflow.com/questions/51108261
复制相似问题