OSError: [Errno 71] Ошибка протокола в pandas, python3 - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть приложение на Python, которое имеет зависимость от панд.Приложение хорошо работает на полной системе Ubuntu 18.Но для Ubuntu, установленного на virtualbox, приложение сталкивается с ошибкой (приведенной ниже).

Traceback (most recent call last):
  File "/media/sf_UbuntuShare/phase-Extender-master/phase-Extender.py", line 1834, in 
    main()
  File "/media/sf_UbuntuShare/phase-Extender-master/phase-Extender.py", line 536, in main
    sep='\t', index=False, header=True)
  File "/usr/local/lib/python3.5/dist-packages/pandas/core/frame.py", line 1524, in to_csv
    formatter.save()
  File "/usr/local/lib/python3.5/dist-packages/pandas/io/formats/format.py", line 1637, in save
    compression=self.compression)
  File "/usr/local/lib/python3.5/dist-packages/pandas/io/common.py", line 390, in _get_handle
    f = open(path_or_buf, mode, encoding=encoding)
OSError: [Errno 71] Protocol error: 'chunked_Data_NA12889/NA12889:20'


Что я в основном делаю, так это разбиваю большой кадр данных панд на блоки после группировки. Вот код процесса:

import pandas as pd

# assign value to "soi" variable
soi = "some user defined string value"

# read a textfile into pandas
pd.read_table(some_data, delimiter='\t')

# group a pandas dataframe by a unique value of a column
good_data_by_group = good_data.groupby('CHROM', sort=False)

# create a folder to store the data
if os.path.exists('chunked_Data_' + soi):
            shutil.rmtree('chunked_Data_' + soi, ignore_errors=False, onerror=None)
        os.makedirs('chunked_Data_' + soi + '/', exist_ok=True)

# now split the pandas dataframe into chunks
for chr_, data_by_chr in good_data_by_group:
            pd.DataFrame.to_csv(data_by_chr, 'chunked_Data_' + soi + '/' + soi + ':' + str(chr_),
                                sep='\t', index=False, header=True)


Фактическая строка кода, возвращающая ошибку:

pd.DataFrame.to_csv(data_by_chr, 'chunked_Data_' + soi + '/' + soi + ':' + str(chr_), sep='\t', index=False, header=True)`


Что здесь на самом деле не так?
Код работает на моей полной фазе Ubuntu 18. Но на самом деле не работает в Ubuntu с виртуальной коробкой.Я думаю, что это больше проблема совместимости, чем проблема кода.Но есть ли способ, которым я могу изменить код, чтобы приложение работало во всех системах Ubuntu, независимо от того, имеют ли они sudo превалирующие или нет, будь то полнофункциональная Ubuntu или виртуальная коробка, виртуальная среда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...