熊猫中是否有相当于R的data.table fread cmd关键字



R的data.table读取主力"fread"的一个非常有用的方面是"cmd"关键字,使用该关键字可以以编程方式构建shell命令并将其传递给fread,以将shell命令的输出读取为data.table。

这对于交互式使用来说非常强大,因为命令可以是任何字符串,例如ssh,它将在远程主机上运行,并且可以将基本解析推迟到一行中的简单grep/sec/awk,同时防止需要创建临时目录和文件,并采取额外步骤来获取远程文件。

从最新的pandas文档中可以看出,在任何pd.read_*方法中似乎都没有等价的方法。这不是一个功能吗?有没有一个简单的等价物可以代替人们使用?

@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)

一个更高效、更不冗长的替代方案是使用datatable包并执行以下操作:

import datatable as dt
df = dt.fread(cmd="shell_cmd").to_pandas()

您也可以选择本机使用datatable帧类型。

最新更新