我有来自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
我怀疑这可能是一个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])