我从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
答案 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])