我有一些大型的csv和xlsx文件,我需要为其设置pandas DataFrames。我有在目录中定位这些文件的代码(打印时,这些代码显示正确的路径名)。然后这些路径被传递给一个帮助函数,这个函数意味着为这些文件设置所需的数据帧,然后数据将被传递给其他函数进行一些操作。我打算在完成后将数据写入文件(通过加载模板,将数据写入文件并保存此文件)。大熊猫为CSV返回空的DataFrames
目前,我有这样的代码:
import pandas
# some set-up functions (which work; verified using print statements)
def createDataFrame(filename):
if filename.endswith('.csv'):
df = pandas.read_csv(StringIO(filename), skip_blank_lines=True, index_col=False,
encoding="utf-8", skipinitialspace=True)
当我尝试print(df)
,我得到:
Empty DataFrame
Columns: [a.csv]
Index: []
和print(StringIO(filename))
给我:
<_io.StringIO object at 0x004D1990>
然而,当我离开了StringIO()
在filename
左右的函数中,我得到这个错误:
OSError: File b'a.csv' does not exist
无处不在,我已经能够找到已任刚说import and start using,或有关使用read_csv()
而不是from_csv()
(from this question,这是不是非常有帮助这里)谈判,甚至the current pandas docs此信息基本上说它应该像传递文件到pandas.read_csv()
一样简单。
1)我检查了我有完整的权限,并且该文件是有效的并且存在。为什么我得到OSError?
2)当我使用StringIO()
时,为什么我仍然在这里得到一个空的DataFrame?我怎样才能解决这个问题?
在此先感谢。
为什么你需要'StringIO'?如果没有这个,它会不会起作用?即'pandas.read_csv(文件名,...)' – EdChum
,张贴在我的问题,没有StringIO的我正在一个OSERROR。我一直无法发现为什么,并希望能解决这个问题的任何指针(然后也许它会工作) – DJGrandpaJ