Pal*_*han 5 python r fread pandas data.table
R\xe2\x80\x99s data.table 读取主力 \xe2\x80\x9cfread\xe2\x80\x9d 的一个非常有用的方面是 \xe2\x80\x9ccmd\xe2\x80\x9d 关键字,可以使用它以编程方式构建shell 命令并将其传递给 fread 以将 shell 命令的输出作为 data.table 读取。
\n\n这对于交互式使用非常强大,因为命令可以是任何字符串,例如将在远程主机上运行的 ssh 字符串,并且可以将基本解析推迟到简单的 grep/sec/awk 全部在一行中,同时防止需要临时创建目录和文件,并采取额外的步骤来获取远程文件。
\n\n据我所知,查看最新的 pandas 文档,任何 pd.read_* 方法似乎都没有等效的方法。这不是一个特点吗?人们可能会使用一个简单的等价物来代替吗?
\n正如@sammywemmy 指出的,有两种选择。第一个比 R 等价物稍微详细一点的用法是subprocess这样的:
import pandas as pd, import subprocess
with subprocess.Popen("shell_cmd", shell=True, stdout=subprocess.PIPE) as p:
df = pd.read_csv(p.stdout)
Run Code Online (Sandbox Code Playgroud)
一个更高效、更简洁的替代方案是使用该datatable包并执行如下操作:
import datatable as dt
df = dt.fread(cmd="shell_cmd").to_pandas()
Run Code Online (Sandbox Code Playgroud)
您还可以选择在本地使用datatable框架类型。
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |