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
您需要首先在
def comment(row):
函数下正确地缩进代码,以获得您期望的答案也许我不明白你在问什么,但这些数字加起来:
1171 + 1175 + 634 + 4810 = 7790
意思是
df.count()
和df.groupby('Comment').size()
表示相同数量的行相关问题 更多 >
编程相关推荐