熊猫的groupby统计数据中的NaN值

平静的

我正在使用一个熊猫Top15数据框架,其中包含世界上15个国家的人口数据。

                      Population
Country                         
China               1.367645e+09
United States       3.176154e+08
Japan               1.274094e+08
United Kingdom      6.387097e+07
Russian Federation  1.435000e+08
Canada              3.523986e+07
Germany             8.036970e+07
India               1.276731e+09
France              6.383735e+07
South Korea         4.980543e+07
Italy               5.990826e+07
Spain               4.644340e+07
Iran                7.707563e+07
Australia           2.331602e+07
Brazil              2.059153e+08

现在,我想查看这些数据在各大洲的统计数据。因此,我使用字典创建了一个groupby对象:

df = Top15.groupby(ContinentDict)

在哪里:

ContinentDict  = {'China':'Asia', 
              'United States':'North America', 
              'Japan':'Asia', 
              'United Kingdom':'Europe', 
              'Russian Federation':'Europe', 
              'Canada':'North America', 
              'Germany':'Europe', 
              'India':'Asia',
              'France':'Europe', 
              'South Korea':'Asia', 
              'Italy':'Europe', 
              'Spain':'Europe', 
              'Iran':'Asia',
              'Australia':'Australia', 
              'Brazil':'South America'}

然后创建一个新的数据框,其中将包含各种统计信息:

new_df = pd.DataFrame({'size' : df.size().values, 'sum' : df.sum().values, 'mean' : df.mean().values, 'std' : df.std().values}, index = df.groups.keys())

我得到以下输出:

                       mean  size           std           sum
North America  5.797333e+08     5  6.790979e+08  2.898666e+09
Asia           2.331602e+07     1           NaN  2.331602e+07
South America  7.632161e+07     6  3.464767e+07  4.579297e+08
Europe         1.764276e+08     2  1.996696e+08  3.528552e+08
Australia      2.059153e+08     1           NaN  2.059153e+08

如您所见,在“标准偏差”列中,有两个NaN值(对于亚洲和澳大利亚)。

之后,我尝试查看各个值

df.std()

我得到:

    Asia             6.790979e+08
    Australia                 NaN
    Europe           3.464767e+07
    North America    1.996696e+08
    South America             NaN

Name: Population, dtype: float64

现在亚洲完全没事,而南美却没有!NaN我的原始数据框中没有任何值。如何解释这种奇怪的行为以及如何解决呢?

布伦·巴恩

这不是获取groupby统计信息的好方法。只需将函数名称列表传递给,即可直接在分组的对象上计算统计信息agg

>>> d.groupby(ContinentDict).Population.agg(['size', 'mean', 'std', 'sum'])
               size          mean           std           sum
Asia              5  5.797333e+08  6.790979e+08  2.898666e+09
Australia         1  2.331602e+07           NaN  2.331602e+07
Europe            6  7.632161e+07  3.464767e+07  4.579297e+08
North America     2  1.764276e+08  1.996697e+08  3.528553e+08
South America     1  2.059153e+08           NaN  2.059153e+08

(您可以使用字符串,因为正在使用的所有函数都是内置的pandas方法,因此是特殊情况。如果要计算任何自定义函数,则需要传递实际的函数对象。)

至于NaN,那些发生在给定大陆上只有一个国家的地方。单个数字的样本标准偏差未定义,熊猫默认使用样本标准偏差。(您可以通过调用来获得总体stdev .std(ddof=0),这将使您在这些情况下为零。)

您之前在不同位置看到NaN的原因是因为您明确地将其.groups.keys()作为索引传递.groups只是一本字典,所以它.key()可以是任意顺序。发生的是,您从计算均值,标准差等获得的结果的顺序与从dict获得的键的顺序不同。您无需像以前那样分别计算各种汇总统计信息;您可以一次完成所有操作,.agg而pandas会确保一切都适合您。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数组中给出的统计数据列表中计算一个统计数据的单独奖励值

来自分类Dev

在熊猫中,如何计算跨组变化的统计数据

来自分类Dev

统计数据中的流入/流出计数

来自分类Dev

统计数据框中的特定数据并显示

来自分类Dev

我想统计数据帧中某列中重复值的出现并更新python中新列中的计数

来自分类Dev

使用Sunspot在Solr中按统计数据分组

来自分类Dev

统计数据库目录中的文档

来自分类Dev

从表中获取员工和经理的统计数据

来自分类Dev

调整统计数据在ggpubr中的位置

来自分类Dev

统计数据框中的150个变量

来自分类Dev

从表创建统计数据

来自分类Dev

令人毛骨悚然的统计数据

来自分类Dev

gnuplot多列的统计数据

来自分类Dev

Docker统计数据100%内存

来自分类Dev

每天选择并统计数据

来自分类Dev

来自吉西的统计数据

来自分类Dev

良好的统计数据集成

来自分类Dev

统计数据处理

来自分类Dev

MongoDB 的 30 天统计数据

来自分类Dev

MYSQL 平均日统计数据

来自分类Dev

在熊猫数据框中为该数据框中的每个玩家创建一个新列,其中包含上一年的统计数据

来自分类Dev

SICStus Prolog:受JIT影响的统计数据/ 2值

来自分类Dev

Oracle最佳实践,将统计数据和信息存储为键/值

来自分类Dev

对数正态蒙特卡罗模拟汇总统计数据与真实基础值不同

来自分类Dev

Sitecore将项目统计数据存储在数据库中的什么位置?

来自分类Dev

iPython中Seaborn统计数据可视化中的默认字体

来自分类Dev

通过使用Google表格中具有多个数量的单个值来计算数据集的统计数据

来自分类Dev

将熊猫数据框头部(5),统计数据和图另存为图片输出

来自分类Dev

如何从一头雾水的运行中获取统计数据?

Related 相关文章

  1. 1

    从数组中给出的统计数据列表中计算一个统计数据的单独奖励值

  2. 2

    在熊猫中,如何计算跨组变化的统计数据

  3. 3

    统计数据中的流入/流出计数

  4. 4

    统计数据框中的特定数据并显示

  5. 5

    我想统计数据帧中某列中重复值的出现并更新python中新列中的计数

  6. 6

    使用Sunspot在Solr中按统计数据分组

  7. 7

    统计数据库目录中的文档

  8. 8

    从表中获取员工和经理的统计数据

  9. 9

    调整统计数据在ggpubr中的位置

  10. 10

    统计数据框中的150个变量

  11. 11

    从表创建统计数据

  12. 12

    令人毛骨悚然的统计数据

  13. 13

    gnuplot多列的统计数据

  14. 14

    Docker统计数据100%内存

  15. 15

    每天选择并统计数据

  16. 16

    来自吉西的统计数据

  17. 17

    良好的统计数据集成

  18. 18

    统计数据处理

  19. 19

    MongoDB 的 30 天统计数据

  20. 20

    MYSQL 平均日统计数据

  21. 21

    在熊猫数据框中为该数据框中的每个玩家创建一个新列,其中包含上一年的统计数据

  22. 22

    SICStus Prolog:受JIT影响的统计数据/ 2值

  23. 23

    Oracle最佳实践,将统计数据和信息存储为键/值

  24. 24

    对数正态蒙特卡罗模拟汇总统计数据与真实基础值不同

  25. 25

    Sitecore将项目统计数据存储在数据库中的什么位置?

  26. 26

    iPython中Seaborn统计数据可视化中的默认字体

  27. 27

    通过使用Google表格中具有多个数量的单个值来计算数据集的统计数据

  28. 28

    将熊猫数据框头部(5),统计数据和图另存为图片输出

  29. 29

    如何从一头雾水的运行中获取统计数据?

热门标签

归档