我有以下格式的pandas数据框:
Latitude Longitude
-31.563910 147.154312
-33.718234 150.363181
-33.727111 150.371124
为了进一步处理,我需要将其转换为如下格式:
示例输出:
[
{lat: -31.563910, lng: 147.154312},
{lat: -33.718234, lng: 150.363181},
{lat: -33.727111, lng: 150.371124}
]
我尝试了这段代码,但它不起作用:
list1 = []
for index,row in dfLatLong.iterrows():
list1.append("{lat:" + row['StartLat'] + ", lng:" + row['StartLong'] + "},")
答案 0 :(得分:2)
您可以使用参数orient='records'
致电to_dict
:
In [40]:
df.to_dict(orient='records')
Out[40]:
[{'Latitude': -31.563909999999996, 'Longitude': 147.154312},
{'Latitude': -33.718234000000002, 'Longitude': 150.363181},
{'Latitude': -33.727111000000001, 'Longitude': 150.37112400000001}]
你可以rename
在上面的col之前得到你想要的名字:
In [42]:
df.rename(columns={'Latitude':'lat', 'Longitude':'lng'}).to_dict(orient='records')
Out[42]:
[{'lat': -31.563909999999996, 'lng': 147.154312},
{'lat': -33.718234000000002, 'lng': 150.363181},
{'lat': -33.727111000000001, 'lng': 150.37112400000001}]
修改强>
你需要走过df以获得所需的输出
In [59]:
s='['
for i, row in df.iterrows():
s += '{lat:' + str(row['Latitude']) + ',' + 'lng:' + str(row['Longitude']) + '},' + '\n'
s += ']'
s
Out[59]:
'[{lat:-31.56391,lng:147.154312},\n{lat:-33.718234,lng:150.363181},\n{lat:-33.727111,lng:150.371124},\n]'
答案 1 :(得分:0)
df.rename(columns={'Latitude':'lat', 'Longitude':'lng'}).to_json(orient='records').replace('\"', '')