“NoneType”对象没有属性“fileno”

2024-04-27 10:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime

plt.style.use('ggplot')
columns = ['user_id','order_dt','order_products','order_amount']
df = pd.read_csv('CDNOW_master.txt',names = columns,sep = '\s+')
df['order_date'] = pd.to_datetime(df.order_dt,format='%Y%m%d')
df['month'] = df.order_date.values.astype('datetime64[M]')
f = df.groupby('user_id')['month'].min().value_counts()
print(f)

上面是我的代码,我的目的是获取第一个月购买的用户的值计数,但是只得到了“NoneType”对象没有属性“fileno”的结果。

有什么想法吗?非常感谢

这是回溯

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\practice\CDNOW.py", line 19, in <module>
    print(f)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pandas\core\base.py", line 51, in __str__
    return self.__unicode__()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pandas\core\series.py", line 982, in __unicode__
    width, height = get_terminal_size()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pandas\io\formats\terminal.py", line 33, in get_terminal_size
    return shutil.get_terminal_size()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 1071, in get_terminal_size
    size = os.get_terminal_size(sys.__stdout__.fileno())
AttributeError: 'NoneType' object has no attribute 'fileno'

Tags: inpyimportpandasdfsizegetlocal
2条回答

我也看到了。

>>> type(sys.__stdout__)
<class 'NoneType'>

在使用idle时,我在调用dunder stdout时得到NoneType。我假设pandas想确定在结果中显示多少,并正在查找sys输出信息。In the documentation, it mentions what this is, but not how to reset it.

我做到了:

sys.__stdout__ = sys.stdout

它解决了这个问题,但我不知道我是否在生产线上造成了问题。

你可以试试下面的。

df = pd.read_csv('CDNOW_master.txt',usecols = columns,sep = '\s+')

而不是

df = pd.read_csv('CDNOW_master.txt',names = columns,sep = '\s+')

这解决了我的问题。希望它也能解决你的问题。

相关问题 更多 >