【发布时间】:2015-06-23 23:16:43
【问题描述】:
我有一组来自 Excel 工作表的 100 行数据。该工作表由 4 列组成 [日期、出站设施编号、目的地纬度、目的地经度]。
我可以将日期索引并分组到整个数组中的两个数组中(因为每天都会记录数据,日期已经聚集在一起),但我的问题是因为出站设施 # 是随机的,我需要一种方法来分组将目的地 (Lat,Lon) 放入每个 Outbound Facility 的数组中。
理想情况下,我希望能够有一个数组,我可以在其中调用t[0][0],python 在第 1 天返回出站设施 1 的所有目的地纬度/经度。
file_location = "C:\Users\PythonPractice.xlsx"
OFs = 4
with xlrd.open_workbook(file_location) as workbook:
sheet = workbook.sheet_by_index(0)
Dates = (sheet.cell_value(i,0) for i in range(sheet.nrows))
Day = [list(group) for key, group in itertools.groupby(Dates)]
d = []
for i in range(sheet.nrows):
DC = sheet.cell(i,1).value
Lat = sheet.cell(i,2).value
Lon = sheet.cell(i,3).value
d.append([OF,Lat,Lon])
t = []
for i in range(2):
T = [d[j:j+len(Day[i])] for j in range(0,len(Day),len(Day[i]))]
t.append(T)
这是 excel 文件的摘录。
Date OF Lat Lon
1 1 1 100
1 2 2 99
1 3 3 98
1 4 4 97
1 1 5 96
1 2 6 95
1 3 7 94
1 4 8 93
1 1 9 92
1 2 10 91
1 3 11 90
1 4 12 89
2 3 51 50
2 4 52 49
2 1 53 48
2 2 54 47
2 3 55 46
2 4 56 45
2 1 57 44
2 2 58 43
2 3 59 42
2 4 60 41
2 1 61 40
所以在这种情况下,第 1-4 列是 [Date,OF,Lat,Lon]
我真的很想将每件事都按日期分组,然后按出站设施分组。当我打印 t 时,我希望它看起来像这样:
[[[[1,100],
[5, 96],
[9, 92]],
[[2, 99],
[6, 95],
[10,91]],
[[3, 98],
[7, 94],
[11,90]],
[[4, 97],
[8, 92],
[12,89]]],
[[[53,48],
[57,44],
[61,40]],
[[54,47],
[58,43]],
[[51,50],
[55,46],
[59,42]],
[[52,49],
[56,45],
[60,41]]]]
【问题讨论】:
-
您能否发布几行输入文件,并使用该输入数据,发布您希望输出看起来如何的示例?
-
使用两行输入文件来调试并打印
T, Day, Dates ...out。 -
我继续添加了 excel 摘录
标签: python arrays excel grouping