python - 在 Carnets Plus 中打开数据集
问题描述
我有一台带有 M1 芯片的 iPad Pro。我尝试在我的 iPad 上以几种不同的方式打开这个数据集。我可以在 Jupyter Notebook 环境中的 Mac mini 上打开它。我在 iPad 上安装了 Carnets Plus,并将数据集保存到 iPad 上的 Carnets Plus 目录(在 iPad 文件应用程序中可见)。我已经直接在 Carnets Plus 中打开了数据集文件,但我无法在编程环境中调用它。我假设我的代码中没有正确的文件路径。我尝试从网站的原始位置打开文件,但这会产生解析器错误。
file_df = pd.read_csv('./network_data_CYB_674.csv')
file_df
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-4-c7026e26accd> in <module>
1 #file_df = pd.read_csv('/iCloud Drive/Classes/674/project/network_data_CYB_674.csv')
2 #file_df = pd.read_csv('/Users/jksedik/Library/Mobile\ Documents/com~apple~CloudDocs/Classes/674/project/network_data_CYB_674.csv')
----> 3 file_df = pd.read_csv('./network_data_CYB_674.csv')
4 #file_df = pd.read_csv('https://engage.utica.edu/learn/mod/resource/view.php?id=2075276', error_bad_lines=False, engine = "python")
5 #file_df = pd.read_csv('https://engage.utica.edu/learn/mod/resource/view.php?id=2075276', engine = 'python')
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/parsers.py in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)
608 kwds.update(kwds_defaults)
609
--> 610 return _read(filepath_or_buffer, kwds)
611
612
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
460
461 # Create the parser.
--> 462 parser = TextFileReader(filepath_or_buffer, **kwds)
463
464 if chunksize or iterator:
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
817 self.options["has_index_names"] = kwds["has_index_names"]
818
--> 819 self._engine = self._make_engine(self.engine)
820
821 def close(self):
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
1048 )
1049 # error: Too many arguments for "ParserBase"
-> 1050 return mapping[engine](self.f, **self.options) # type: ignore[call-arg]
1051
1052 def _failover_to_python(self):
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
1865
1866 # open handles
-> 1867 self._open_handles(src, kwds)
1868 assert self.handles is not None
1869 for key in ("storage_options", "encoding", "memory_map", "compression"):
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/parsers.py in _open_handles(self, src, kwds)
1360 Let the readers open IOHanldes after they are done with their potential raises.
1361 """
-> 1362 self.handles = get_handle(
1363 src,
1364 "r",
/private/var/containers/Bundle/Application/513EC314-F2E5-4B82-BE2F-B4B49E05C61D/Carnets-sci.app/Library/lib/python3.9/site-packages/pandas/io/common.py in get_handle(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)
640 errors = "replace"
641 # Encoding
--> 642 handle = open(
643 handle,
644 ioargs.mode,
FileNotFoundError: [Errno 2] No such file or directory: './network_data_CYB_674.csv'
解决方案
通过在https://github.com/holzschu/carnets/issues上打开问题或向 carnets_jupyter@icloud.com 发送电子邮件,您可能会得到更快的响应。
回答你的问题:如果笔记本和 CSV 文件在同一个目录中,并且两个文件都在 iPad 上的 Carnets Plus 目录中,如你所说,那么它应该可以工作(因为它们在 Carnets Plus 的沙箱中, Carnets Plus 拥有自己的沙箱的权限)。所以它要么是 Carnets Plus 中的错误,要么是文件不是您认为的那样。例如,文件应用程序一直在为某些文件添加额外的后缀,同时将它们隐藏给查看器。
Carnets Plus 具有外壳转义功能,因此您可以在单元格中调试问题!ls
(它将显示所有文件)和!pwd
(检查您所在的位置)(%ls
并且%pwd
也可以工作)。
如果笔记本和 CSV 文件位于不同的目录中,那就是问题所在,尽管如果 CSV 文件位于 Carnets Plus 自己的目录中,您可以使用~/Documents/network_data_CYB_674.csv
.
如果笔记本和 CSV 文件在同一个文件夹中,但在 Carnets Plus 自己的目录之外,您必须授予 Carnets Plus 对整个文件夹的访问权限。您可以通过单击顶部工具栏上的文件夹图标,然后导航到封闭文件夹并单击“选择”来完成此操作。
推荐阅读
- sql - 在 Access 中更新远程脱机数据库中的表
- r - 使用 blsAPI 拉取数据
- c# - 读取特定文本部分中的文本并将剩余行作为键值对返回
- javascript - 对 v-for 中的特定元素使用 v-if
- go - 使用 golang 创建 veracrypt 卷
- c# - 如何在 C# 中使用 JSON.NET 反序列化 JSON RPC 响应数组?
- visual-studio - Visual Studio 2017 社区版 - 缺少分析代码覆盖率选项?
- c# - 如何使用 PowerShell 通过 WMI 更新“ds_computer”类上的 LDAP 属性
- html - 防止图像重叠
- angular - Angular CLI 和原始量角器命令