【问题标题】:Value_counts not returning the desired output [closed]Value_counts 未返回所需的输出 [关闭]
【发布时间】:2019-07-16 21:44:07
【问题描述】:

我正在尝试根据另一列获取一列的最常见值。 具体来说,我正在使用以下代码:

data.beds[data.bedrooms== 1].value_counts()

这以前有效,但现在我得到的输出是

Series([], Name: beds, dtype: int64)

数据如下:

bedrooms     beds
0             1
1             1
1             1
0             1
2             2
...          ...

谁能告诉我为什么会发生这种情况以及如何解决它以获得实际价值?这几天前有效,所以我真的不知道出了什么问题!

感谢您的宝贵时间!!

【问题讨论】:

  • 我无法重现。可以加个minimal reproducible example吗?
  • 我设法修复了它!显然我忘记运行将其转换为数字的代码行(因为该行是对象类型,因为它有字符串)。在不将其转换为数字的情况下,解决方案是执行 data.beds[data.bedrooms== ''1''].value_counts()

标签: python pandas indexing series


【解决方案1】:

尝试data[data.bedrooms==1].beds.value_counts() 甚至data[data.bedrooms==1].beds.mode(),因为您想要最常出现的值。

【讨论】:

  • 还是不行……没有返回实际值……
  • 请分享您正在使用的数据框的示例。
  • 最终意识到我必须先将所有内容转换为数字,因为该列仍然有字符串!!它现在有效! Obrigada na mesma :)
【解决方案2】:

您正在应用 value_counts() 之前进行过滤(卧室值 = 1 [data.bedrooms== 1] 的所有行)

第一个过滤器没有返回任何值,这就是你得到显示输出的原因: 系列([],名称:床,dtype:int64)

您无法获取空数据集的值计数。

问候!

【讨论】:

    【解决方案3】:

    我设法修复它!看了这么久,我的大脑停止了工作。

    显然我忘记运行将其转换为数字的代码行(因为该行是对象类型,因为它有字符串)。在不将其转换为数字的情况下,解决方案是执行 data.beds[data.bedrooms== ''1''].value_counts()

    感谢您的意见!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 2023-03-12
      • 2016-12-20
      • 2015-05-16
      • 2019-11-10
      • 1970-01-01
      • 2021-01-12
      相关资源
      最近更新 更多