要求按照时间排序,同一身份证,不同时间的数据放一起,这个怎么处理
3条回答 默认 最新
檀越@新空间 2024-06-01 10:52关注上午好☀️☀️☀️️
本答案参考ChatGPT-3.5要按照日期排序并将相同身份证号的数据放在一起,可以按照以下步骤进行处理:
-
读取 Excel 数据:使用合适的库(如
xlrd)读取 Excel 数据,并将数据存储在一个列表中。 -
按日期排序:根据数据中的日期字段,使用适当的排序函数(如
sorted())对列表中的数据进行排序。将数据按照日期从早到晚的顺序排列。 -
分组:遍历已排序的列表,对于相同身份证号的数据,将它们放在一个子列表中。可以使用字典来作为一个分组集合,键为身份证号,值为相应的数据列表。遍历列表时,将数据添加到相应的键中。
-
导出数据:将分组后的数据导出到一个新的 Excel 文件中。可以使用适当的库(如
xlwt)创建一个新的 Excel 文件,并将分组后的数据写入到该文件中。
具体的代码实现如下:
import xlrd import xlwt from xlutils.copy import copy # 读取 Excel 数据 workbook = xlrd.open_workbook('input.xls') sheet = workbook.sheet_by_index(0) data = [sheet.row_values(row) for row in range(1, sheet.nrows)] # 按日期排序 sorted_data = sorted(data, key=lambda x: x[0]) # 分组 groups = {} for row in sorted_data: id_card = row[1] if id_card not in groups: groups[id_card] = [row] else: groups[id_card].append(row) # 导出数据 output = xlwt.Workbook() sheet = output.add_sheet('Sheet1') row = 0 for id_card, rows in groups.items(): for r in rows: for i, value in enumerate(r): sheet.write(row, i, value) row += 1 output.save('output.xls')注意:上述代码假设 Excel 文件中的第一列是日期,第二列是身份证号。你需要根据实际情况进行调整。
解决 无用评论 打赏 举报 编辑记录-