Python 3.x Python:将列表中的子元素打印到CSV
我有一张gps坐标表。以下是这些坐标的格式。如果您愿意,这是路线0,它表示驾驶员访问的位置。他从('24.957055','-8.740156')开始,到('34.956915136264','-10.753690062122')并返回('24.957055','-8.740156') 我想创建一个数据结构,其中每个坐标根据它们是起点、终点还是仅仅是中间点进行分类 注:起点、终点=相同的,即驾驶员始终返回基地 路由0的所需输出:Python 3.x Python:将列表中的子元素打印到CSV,python-3.x,pandas,data-structures,Python 3.x,Pandas,Data Structures,我有一张gps坐标表。以下是这些坐标的格式。如果您愿意,这是路线0,它表示驾驶员访问的位置。他从('24.957055','-8.740156')开始,到('34.956915136264','-10.753690062122')并返回('24.957055','-8.740156') 我想创建一个数据结构,其中每个坐标根据它们是起点、终点还是仅仅是中间点进行分类 注:起点、终点=相同的,即驾驶员始终返回基地 路由0的所需输出: Start, way_point_1, End ('24.9570
Start, way_point_1, End
('24.957055', ' -8.740156'), ('34.956915136264', ' -10.753690062122'), ('24.957055', ' -8.740156')
我拥有的坐标列表要长得多,我希望能够循环浏览完整的列表,并确定坐标是起点、终点还是中间点
编辑:假设我理解你的问题,其中一些路线将有超过1个中间点应该足够简单。让我们假设以下列表:
route0 = [[('24.957055', ' -8.740156'),
('34.956915136264', ' -10.753690062122'),
('36.956915136264', ' -6.753690062122'),
('66.956915136264', ' -12.753690062122'),
('24.957055', ' -8.740156')], [('48.957055', ' -16.740156'),
('68.956915136264', ' -20.753690062122'),
('48.957055', ' -16.740156')]]
您只需要一个简单的for循环:
for i in range(len(route0)):
print(f'List Element: {i}\nstart: {route0[i][0]}\nEnd: {route0[i][-1]}\nIntermediary: {route0[i][1:-1]}\n')
输出:
List Element: 0
start: ('24.957055', ' -8.740156')
End: ('24.957055', ' -8.740156')
Intermediary: [('34.956915136264', ' -10.753690062122'), ('36.956915136264', ' -6.753690062122'), ('66.956915136264', ' -12.753690062122')]
List Element: 1
start: ('48.957055', ' -16.740156')
End: ('48.957055', ' -16.740156')
Intermediary: [('68.956915136264', ' -20.753690062122')]
无论你想做什么,总体思路都是一样的:
route0[0][0] # looks at the first list and takes the first element
route0[0][-1] # looks at the first list and takes the last element
route0[0][1:-1] # looks at the first list and takes all the middle elements
要使用熊猫创建csv,请执行以下操作:
data = []
for i in range(len(route0)):
s = route0[i][0]
m = str(route0[i][1:-1]).replace('[','').replace(']','')
e = route0[i][-1]
data.append([s,m,e])
df = pd.DataFrame(data, columns=['Start', 'Intermediary', 'End'])
df.to_csv('file_name.csv')
要使用csv创建csv,请执行以下操作:
import csv
data = []
for i in range(len(route0)):
s = route0[i][0]
m = str(route0[i][1:-1]).replace('[','').replace(']','') #route0[i][1:-1]
e = route0[i][-1]
data.append([s,m,e])
with open('test.csv', 'w', newline='') as f:
writer = csv.writer(f)
headers = ['Start', 'Intermediary', 'End']
writer.writerow(headers)
writer.writerows(data)
非常感谢。f弦在这里对我有很大的帮助。我发现了数据分析的世界,这对我是一个很大的帮助。我说我是在处理列表中的列表还是“列表列表”是对的?
import csv
data = []
for i in range(len(route0)):
s = route0[i][0]
m = str(route0[i][1:-1]).replace('[','').replace(']','') #route0[i][1:-1]
e = route0[i][-1]
data.append([s,m,e])
with open('test.csv', 'w', newline='') as f:
writer = csv.writer(f)
headers = ['Start', 'Intermediary', 'End']
writer.writerow(headers)
writer.writerows(data)