我有一个具有pandas依赖关系的python应用程序。该应用程序在完整的ubuntu 18系统上运行良好。但是,对于安装在virtualbox上的ubuntu,该应用程序会遇到错误(如下所示)。
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还是虚拟盒虚拟环境。