Pandas中是否有R的data.table fread cmd关键字的等价物?

2024-05-16 20:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


Tags: 文件方法字符串命令cmddata远程编程
1条回答
网友
1楼 · 发布于 2024-05-16 20:10:29

正如@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帧类型

相关问题 更多 >