【发布时间】:2019-02-11 03:35:17
【问题描述】:
我正在尝试根据两列绘制出出现的值。效果很好,感谢 post 中的 Marcus。但是,我还希望它为没有计数的事件显示 0(其中评级字段为空)。它目前忽略空值。
如您所见,Critical 没有出现,因此它们没有显示。如果数据框中没有出现这些环境/评级,我需要它显示 0。
基本上,我希望评级(例如关键和其他 P3)始终显示,这样即使没有关键或其他条目,它也会在该环境中显示为 0。
这是当前代码:csvfile = pd.read_csv("rawstats.csv", encoding = "ISO-8859-1", usecols=['Environment/s Affected', 'Rating'])df = pd.DataFrame(csvfile)df.groupby(['Environment/s Affected', (df['Rating'].isin(['1', '2']))]).size().rename(index={True: 'Critical', False: 'Others P3+'}, level=1).to_csv('summary.csv')
样本数据:Rating,Environment/s Affected
3,Env1
3,Env1
3,Env1
3,Env2
3,Env2
3,Env2
3,Env2
3,Env3
3,Env3
3,Env3
3,Env3
3,Env3
3,Env4
3,Env4
3,Env4
3,Env4
3,Env4
3,Env4
4,Test5
4,Test5
4,Test5
4,Test5
4,Test5
4,Test5
4,Test5
,Env1
,Env1
,Env3
,Env4
,Env1
谢谢!
【问题讨论】:
-
最好给我们看一些样本数据
-
我不确定,但如果在执行 groupby 之前对数据框执行 .fillna(0),您可能会得到想要的结果
-
试过 .fillna(0) 但没有区别,除非我能以某种方式扩展 .rename 条件以包含 0。
-
好的,我现在更好地理解了这个问题。抱歉,我不知道如何有效地帮助您,但一个可能不太优雅的想法是生成一个组合数据框(仅与 Environment 分组,每行有 2 行(Other 和 Critical),然后您可以使用 merge with输出,在合并时用 0 填充缺失值).. 抱歉,如果没有帮助
标签: python python-3.x pandas dataframe