【问题标题】:Why does Python Pandas code prints out extra line?为什么 Python Pandas 代码会打印出额外的行?
【发布时间】:2020-11-20 13:40:18
【问题描述】:

在以下代码中使用 python/pandas:

import numpy as np
import pandas as pd

s = pd.Series([1, 3, 5, 12, 6, 8])

print(s)

我们得到以下输出:

0     1
1     3
2     5
3    12
4     6
5     8
dtype: int64

当我在代码中的任何地方都看不到该打印语句时,为什么会打印出这一行:dtype: int64

【问题讨论】:

  • 可能正在寻找类似以下内容的内容:stackoverflow.com/questions/29645153/…,或者如果您只是不想要 dtype:print(s.to_string(dtype=None))
  • 你的意思是说dtype 不应该被打印?如果他们不知道,你怎么知道他们。你因此面临的困难是什么..?有兴趣了解
  • 如果有人知道更多关于精确打印的内部结构,我很感兴趣。 s.__repr__()s.__str__() 默认都包含 dtype__repr__ 清楚地表明它将包含第 1318 行中的 dtype,但我无法完全跟踪绑定的 str 方法
  • 打印熊猫系列通常用于调试,因此包含此详细信息会很有帮助。它不是为最终用户设计的用户界面。
  • 我正在学习熊猫课程,只是想知道为什么在代码中没有专门执行此操作的打印语句时会打印出 dtype: int64 行。这不是任务关键型工作,我只是按照一些示例来学习 pandas,并想知道为什么会有额外的一行。

标签: python pandas


【解决方案1】:

我知道它打印dtype: int64 的原因。

如果查看当前的sobject,s 的类型是Series。

我转换成numpy数组:

s = s.to_numpy(dtype=int)
print(s)

结果:

[ 1  3  5 12  6  8]

【讨论】:

    【解决方案2】:

    希望这会有所帮助!

    >>> import numpy as np
    >>> import pandas as pd
    >>>
    >>> s = pd.Series([1, 3, 5, 12, 6, 8])
    >>>
    >>> print(s.to_string())
    0     1
    1     3
    2     5
    3    12
    4     6
    5     8
    >>> print(s.values)
    [ 1  3  5 12  6  8]
    >>> print(pd.DataFrame(s))
        0
    0   1
    1   3
    2   5
    3  12
    4   6
    5   8
    

    这里可以参考documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多