IPython Anaconda PyCharm Windows 8.1 版

IPython Anaconda PyCharm Windows 8.1 Issue

我是运行这段代码

import pandas as pd
import numpy as np
import glob
import csv
import os
import sys

##Combine all student CSVs from NWEA into one CSV with export
##from 
path = r'NWEA CSVs/Raw/*'
allFiles = glob.glob(path + "/StudentsBySchool.csv")
Sframe = pd.DataFrame()
SframeDup = pd.DataFrame()
list = []
for file in allFiles:
    sdf = pd.read_csv(file,index_col=None, header=0)
    list.append(sdf)
Sframe = pd.concat(list,ignore_index=False)

in IPython 2.3.1 在 Ubunto 14.04 中,它工作得很好。 然后我在 Windows 8.1 上安装 PyCharm with Anaconda 3 和 IPython,运行 完全相同的代码,并遇到以下错误:

Traceback (most recent call last):
  File "C:\Users\mikeronni\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2883, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-11-184a20117d62>", line 18, in <module>
    Sframe = pd.concat(list,ignore_index=False)
  File "C:\Users\mikeronni\Anaconda3\lib\site-packages\pandas\tools\merge.py", line 724, in concat
    copy=copy)
  File "C:\Users\mikeronni\Anaconda3\lib\site-packages\pandas\tools\merge.py", line 769, in __init__
    raise ValueError('All objects passed were None')
ValueError: All objects passed were None

我已经尝试安装最新版本的 pandas 和 IPython,但没有帮助。

这个表达式有问题:glob.glob(path + "/StudentsBySchool.csv")。您传递给 glob 函数的模式不会给您任何命中。可能有几个原因:

  • pycharm 从不同的(意外的)工作目录启动 python
  • 您没有将 csv 文件复制到正确的文件夹中

allFiles 是一个空列表,然后 Sframe = pd.concat(list,ignore_index=False) 尝试连接一个空的数据帧列表,这会给您带来错误。

我建议打印出 os.path.abspath(os.curdir)path + "/StudentsBySchool.csv" 并验证此模式确实与您的 csv 文件匹配。