我有一组来自Excel工作表的100行数据。该表由4列[日期,出站设施#,目的地纬度,目的地Lon]组成。
我可以将日期索引和分组到整个数组中的两个数组中(因为数据每天记录日期已经聚集在一起),但我的问题是因为出站设施#是随机的我需要一种方法来分组将目的地(Lat,Lon)分配到每个出站设施的数组中。
理想情况下,我希望能够拥有一个可以调用t[0][0]
的数组,并且python将在第1天返回所有目的地Lat / Lon,用于出站设施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]]]]
答案 0 :(得分:0)
您考虑过pandas了吗?他们有一些很好的方法来构建数据框,允许你抓取大量数据,过滤它,可视化等等......
对于你的例子(从我可以收集的内容),你可以做类似的事情:
is_on
然后当您需要特定信息时
<label class="primary_btn" for="post_images_attributes_0_is_on">Set as primary</label>
<input id="post_images_attributes_0_is_on" name="post[images_attributes][0][is_on]" style="display:none;" type="checkbox" value="1">
import pandas as pd
df = pd.read_excel('my_excel_file.xls')
将是一个仅包含符合条件的数据的新数据框。如果您发布示例文件,我可以确保此代码兼容,但它应该非常简单