У меня есть некоторые большие файлы csv и xlsx, которые мне нужно настроить для pandas DataFrames. У меня есть код, который находит эти файлы в каталоге (при печати они показывают правильные пути). Затем эти пути передаются вспомогательной функции, которая предназначена для установки необходимых файлов данных для файлов, после чего данные будут переданы другим функциям для некоторых манипуляций. Я собираюсь записать данные в файл (загружая шаблон, записывая данные на него и сохраняя этот файл) после его завершения.pandas, возвращающий пустые DataFrames для CSV
настоящее время у меня код как:
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 (filename, .....)' – EdChum
Как указано в моем вопросе, без StringIO я получаю OSError. Я не мог понять, почему, и был бы признателен за любые указатели, которые могли бы решить эту проблему (а потом, возможно, все это сработает) – DJGrandpaJ