从标准输入读取Pandas数据

18

有没有可能将标准输入数据放入 pandas DataFrame 中?

目前我是把数据保存在一个中间的json文件中,然后进行以下操作:

pandas.read_json('my_json_file.json')

但我想知道是否可以直接将标准输入流传递给Python脚本。我找到了这个:如何在Python中从标准输入或文件中读取数据?但不确定如何在pandas DF中进行逐行插入。


和我心有灵犀的人。Bash shell提供了如此多的免费功能,而这些庞大的程序却在重新发明轮子(并且做得不好)。 - Sridhar Sarnobat
1个回答

26

只需将 sys.stdin 作为一个文件对象(实际上就是这样)使用,并将其传递给 pandasread_xy 方法即可。

$ cat test.py
import sys
import pandas as pd

df = pd.read_json(sys.stdin)
print df

$ cat data.json
{"a": [1,2,3,4], "b":[3,4,5,6]}

$ python test.py < data.json
   a  b
0  1  3
1  2  4
2  3  5
3  4  6

对于Python3,写成print(df) - Sridhar Sarnobat
你有没有觉得用Python太容易了,感觉像是作弊一样?:D - Sridhar Sarnobat
对于任何想要使用 CSV 的人来说,只需将其更改为 read_csv(...) 就可以轻松实现。 - Sridhar Sarnobat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接