使用Python为Excel指定行范围分配不同样本编号的最简实现方法
import pandas as pd # 读取Excel文件 file_path = r"C:/Users/barış/Desktop/test2.xlsx" df = pd.read_excel(file_path) # 初始化Sample Number列为空值,可根据需要修改默认值 df['Sample Number'] = "" print("请按格式输入样本对应的行范围,每次输入一组,全部输完输入q结束") print("输入格式示例:500,1500,1 代表Excel行号500到1500的行分配样本编号1") while True: user_input = input("请输入:").strip() if user_input.lower() == 'q': break try: start_row, end_row, sample_num = user_input.split(',') # Excel行号转pandas索引:起始行减1适配0索引,切片左闭右开所以结束行不用减 start_idx = int(start_row.strip()) - 1 end_idx = int(end_row.strip()) df.loc[start_idx:end_idx, 'Sample Number'] = sample_num.strip() except: print("输入格式错误,请重新输入,示例:500,1500,1") # 写回Excel文件 df.to_excel(file_path, index=False) print("样本编号分配完成,文件已保存")
注意事项
- 行号按Excel中显示的实际行号填写即可,代码会自动适配pandas的0起始索引规则
- 若输入的行范围有重叠,后输入的规则会覆盖先输入的赋值结果
- 未匹配到任何范围的行,Sample Number列会留空,你可以把初始化代码里的
""改成你需要的默认值,比如"0"或者"未分类" - 如果是固定步长分配(比如每1000行一个样本从500行开始),可以直接修改代码写死规则,不需要交互式输入
内容的提问来源于stack exchange,提问作者highbel
相关产品推荐
相关产品推荐

