首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python-pandas按groupby不准确计数

Python-pandas按groupby不准确计数
EN

Stack Overflow用户
提问于 2018-06-30 03:28:37
回答 2查看 37关注 0票数 0
代码语言:javascript
复制
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()时,输出结果如下所示,这比应该存在的注释数量要多得多。

代码语言:javascript
复制
     Comment
     Cancelled            1171
     Date out of Range    1175
     Lost or Stolen       634
     Other                4810
     dtype: int64
EN

回答 2

Stack Overflow用户

发布于 2018-06-30 03:53:14

也许我搞不懂你问的是什么,但这些数字加起来:

1171 + 1175 + 634 + 4810 = 7790

这意味着df.count()df.groupby('Comment').size()表示相同的行数。

票数 1
EN

Stack Overflow用户

发布于 2018-06-30 03:41:47

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51108261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档