【问题标题】:dataframe head() works but print doesn'tdataframe head() 有效,但 print 无效
【发布时间】:2017-10-27 15:37:41
【问题描述】:

我有一个数据帧 bus_rev,如果我在 jupyter 笔记本中运行 bus_rev.head(),它会显示前几行,但如果我运行 print(bus_rev[0:3]) 或 print bus_rev[0:3] 它什么都不返回。我有下面 bus_rev.dtypes 的输出,谁能告诉我发生了什么?

代码:

bus_rev.dtypes

输出:

user_id          object
business_id      object
stars_x           int64
address          object
attributes       object
categories       object
city             object
hours            object
is_open           int64
latitude        float64
longitude       float64
name             object
neighborhood     object
postal_code      object
review_count      int64
stars_y         float64
state            object
good_reviews       bool
dtype: object


Update (didn't work):

import sys
stdout = sys.stdout
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdout = stdout

print(bus_rev3.head())


Import Code:

from collections import Counter
from datetime import datetime

import pandas as pd

t1 = datetime.now()

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

reviews = ''

with open('dataset/review.json','r') as f:
    for line in f.readlines()[0:100000]:
        reviews += line

testdf = pd.read_json(reviews,lines=True)

print(datetime.now() - t1)

【问题讨论】:

  • 拨打head()时会打印什么?
  • 打印总是返回无。
  • @MaorVeitsman 感谢您回复我。 head() 返回前 5 条记录以及每列的值,前 5 条记录中没有一列是缺失值。
  • @AndyHayden 我在同一个笔记本中有其他数据帧,当我对它们使用相同的打印命令时,我会从这些数据帧中获取前几条记录。
  • 得到形状后会打印什么?

标签: python pandas


【解决方案1】:

您在脚本开头导入了什么?似乎reload(sys) 过去曾给其他人带来过麻烦。

Print not showing in ipython notebook - python

【讨论】:

  • 感谢您的建议。我尝试了帖子中的一个技巧。它没有用,我在原始帖子的更新中添加了代码。我还添加了用于加载 json 数据的代码。我在运行加载脚本时注意到的一些事情,它没有显示运行代码所花费的时间。
  • 我将数据帧保存到了一个 pickle 文件并重新启动了内核。现在它打印了。因此,就像您发送的链接所建议的那样,我认为这与我设置默认编码的步骤有关。谢谢!
  • 没问题!很高兴我能帮忙:)
猜你喜欢
  • 2017-01-08
  • 2012-05-08
  • 2017-03-15
  • 2014-10-30
  • 2011-03-08
  • 2013-11-27
  • 2010-11-29
  • 2017-12-13
  • 2015-01-05
相关资源
最近更新 更多