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

时间:2019-04-14 03:51:21

标签: python-3.x pandas

我从python终端输出了三行索引索引为0的行。这三行来自字典列表,我想知道如何将其合并为具有顺序索引号的行。

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

1 个答案:

答案 0 :(得分: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])