如何使用Python打印CSV文件中两个输入数值区间内的所有行
实现方案
你要的功能直接用pandas的iloc切片特性就能实现,不用手动循环生成行号列表,还能自动兼容行号输入顺序的问题(比如用户先输15再输12也能正常输出)。
完整修改后代码
import pandas as pd # 读取CSV文件 data = pd.read_csv('/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/Locations.csv') # 获取用户输入的两个行号 row1 = int(input("Enter Number: " )) row2 = int(input("Enter Number: ")) # 处理行号顺序,保证小的在前大的在后,同时包含两端行号 start_row = min(row1, row2) end_row = max(row1, row2) # 直接用iloc切片取区间内所有行,pandas切片左闭右开,所以end_row要+1 result = data.iloc[start_row : end_row + 1] # 打印结果 print(result)
说明
如果你想用自己写循环生成列表的方式实现,只需调整原来range的参数范围即可,你之前的写法漏掉了首尾两个行号,修改后如下:
num_list = [] # 调整range的起止参数,包含start_row到end_row的所有整数 for i in range(start_row, end_row + 1): num_list.append(i) result = data.iloc[num_list] print(result)
内容的提问来源于stack exchange,提问作者Lilly Mayo-099
相关产品推荐
相关产品推荐

