【问题标题】:Strange output of sum of DataFrame. Why does df.sum() return Series([], dtype: float64)?DataFrame总和的奇怪输出。为什么 df.sum() 返回 Series([], dtype: float64)?
【发布时间】:2021-04-19 02:14:45
【问题描述】:

代码

df=pd.DataFrame({'Col1':[1, '-','-'], 'Col2':['-','-',2]})
df.sum()

返回

Series([], dtype: float64)

假设字符串可能会造成困难,但这也不起作用:

df.sum(numeric_only=True)

返回

Series([], dtype: float64)

我不明白输出试图告诉我什么以及为什么我首先得到它。

只有当我用零替换字符串时,结果才符合预期:

df.replace('-',0).sum()

返回

Col1    1
Col2    2
dtype: int64

【问题讨论】:

  • 我认为是错误。
  • 我在GH的issues部分提交,你可以从这里追踪issue #39903

标签: python pandas dataframe sum


【解决方案1】:

这是一个错误。已提交并确认为问题#39903.

【讨论】:

    【解决方案2】:

    我假设 pandas 的函数 sum 作为内置的 python 之一工作。因此,如果只有一个数字,则您没有可迭代的,因此没有什么可求和的。

    就像你打电话给sum(1),答案是:TypeError: 'int' object is not iterable

    虽然sum([1,0,0])即使微不足道也会给你答案

    【讨论】:

    • 对我来说 df.sum(axis=1) 工作,返回全 0,可能需要升级 pandas 以避免你的错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2021-12-10
    相关资源
    最近更新 更多