python - 从不同的行开始读取多个 csv
问题描述
我正在尝试从一个目录中读取多个 csv 文件。文件以实际原始数据之前的摘要开头。原始数据从找到单词“max”的地方开始,它可以在任何行中。我有下面的代码,但它给了我以下错误: IndexError: list index out of range 谁能帮我解决这个问题?
csv_reader = csv.reader(open(file_path, 'rU'),dialect=csv.excel_tab)
max_found = False
max_row = None
for index, row in enumerate(csv_reader):
if row[index]=='max’:
print(row)
max_row = index
max_found = True
print(max_found)
df = pd.read_csv(file_path)
我尝试了以下修改代码,但程序不会停止运行。我可能做错了什么。
n = 0
with open(file_path,'rU') as fp:
csv_reader = csv.reader(fp)
while True:
for line in csv_reader:
if line == "max":
break
print(line)
n = n + 1
df = pd.read_csv(file_path, skiprows=n)
解决方案
因为您pd.read_csv()
最终要读取数据,所以我建议您这样做:
n = 0
with open(file_path) as fp:
while True:
line = fp.readline()
if line.startswith("max"):
break
n = n + 1
df = pd.read_csv(file_path, skiprows=n)
上面将包含要读取的 CSV 中带有“max”的行,如果您的意思是 CSV 从带有“max”的行下方的行开始,则将该行放在n = n+1
if 语句之前。另外,这里我假设文件中必须存在以“max”开头的行。
推荐阅读
- postgresql - jdbcTemplate 查询仅使用 SELECT * 执行
- csvhelper - *阅读*具有不同格式的多个部分的 CSV 文件的最佳实践
- sql-server - 用以前的记录值更新最新记录
- javascript - Switch 语句返回不正确的值
- go - 如何确认来自 Go 客户端的 gRPC 流量是 TLS 加密的
- python - 从谷歌驱动器获取 CSV,然后加载到熊猫
- excel - 如何阻止数据透视表过滤破坏我的 14 天滚动平均度量?
- javascript - 上传到 AWS S3 得到 403 Forbidden - 通过删除参数中的“ACL”解决
- go - Golang int to uint8 converison,未检测到溢出
- apache-camel - Qpid 客户端 Apache Artemis 2.14.0 高可用性不起作用