将数据框输出与一个索引合并

问题描述 投票:4回答:1

我有来自python终端的输出,其中三行具有相同的索引号为0.这三行来自dicts列表,我想知道如何将其合并为具有顺序索引号。

with open('data file\poi.data', 'r') as f3:    
    data = f3.read()
    data = str(data).split('\n')
    data = list(data)
    for i in range(len(data)):
        datum = data[i]
        datum = ast.literal_eval(datum)
        df = json_normalize(datum)
        pprint(df)

输出看起来像这样

       city    lat         lon              name   state
0  Portland  45.52 -122.681944  City of Portland  Oregon
     city        lat         lon             name       state
0  Seatle  47.609722 -122.333056  City of Seattle  Washington
            city        lat         lon                   name       state
0  San Francisco  37.783333 -122.416667  City of San Francisco  California

我希望输出合并,如下:

       city    lat         lon              name   state
0  Portland  45.52 -122.681944  City of Portland  Oregon
1  Seatle  47.609722 -122.333056  City of Seattle  Washington
2  San Francisco  37.783333 -122.416667  City of San Francisco  California
python python-3.x pandas
1个回答
4
投票

我怀疑这可能是一个JSON行文件,所以你可以试试

df = pd.read_json(filepath, lines=True)

如果这不起作用,请回到使用literal_eval逐行解析文件。您可以尝试在整个列表中调用json_normalize,而不是一次调用一个。

df = json_normalize([literal_eval(d) for d in data])

如果由于某种原因不起作用,请尝试你正在做的事情,但是在规范化数据上调用concat

df = pd.concat([json_normalize(literal_eval(d)) for d in data])
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.