Python 如何逐行读取数据并返回数据帧

Python 如何逐行读取数据并返回数据帧,python,list,pandas,dataframe,readline,Python,List,Pandas,Dataframe,Readline,逐行读取数据 for line in sys.stdin: print(line) 每条线的输入如下: 纽约100 奥兰多200号 LA 300 哥伦比亚特区400 我想要的输出是一个数据帧: city value 0 New York 100 1 Orlando 200 2 LA 300 3 D.C. 400 我的做法是读取该行并将所有行保存为列表列表,其中每行内容都是

逐行读取数据

for line in sys.stdin:

    print(line)
每条线的输入如下:

纽约100
奥兰多200号
LA 300
哥伦比亚特区400

我想要的输出是一个数据帧:

         city     value
    0  New York    100
    1   Orlando    200
    2        LA    300
    3      D.C.    400
我的做法是读取该行并将所有行保存为列表列表,其中每行内容都是一个列表

list_of_lists = []
for line in sys.stdin:
        new_list = [elem for elem in line.split()]
        list_of_lists.append(new_list)
然后将此列表转换为数据帧

我觉得这种方式很愚蠢,所以我想知道是否还有其他方式。 谢谢

输出:

       city value
0  New York   100
1   Orlando   200
2        LA   300
3      D.C.   400

使用
str.rsplit
从右侧拆分一次

list_of_lists = []
for line in sys.stdin:
        new_list = line.rsplit(1)
        list_of_lists.append(new_list)
或者,先放进熊猫系列

import sys, re, pandas as pd

data = sys.stdin.read().splitlines()

pd.Series(data, name='A').str.rsplit(n=1, expand=True)

我不想把每一行都打印出来,而是想把它转换成dataframeYes,你到底试过什么?您是否看过创建数据帧的pandas文档?你的问题到底是什么?附加到一个列表,然后通过换行符加入,并传递给StringIO。查看我的更新编辑,我尝试使用列表列表,并将列表列表转换为数据帧。感觉这不是一个聪明的方法。这将是棘手的,因为你没有一个明确的分隔。。。如果与城市相比,使用不同的分隔符分隔值,包含多个单词,如
New Yourk
san benedeto val di sambro De
,请在问题中指定该分隔符
import sys, re, pandas as pd

data = sys.stdin.read().splitlines()

pd.Series(data, name='A').str.rsplit(n=1, expand=True)