如何用Pandas动态定位CSV起始行(首列为Deal Type)读取数据
解析首列以'Deal Type'为标识的动态起始行CSV文件
解决思路
先手动遍历文件定位到目标起始行的行号,再用Pandas从该行开始读取有效数据,具体步骤如下:
遍历文件找起始行
打开CSV文件逐行读取,直到找到首列值为Deal Type的那一行,记录该行的索引(Python文件读取的行号从0开始计数)。Pandas指定起始行读取
将找到的行号传给read_csv()的skiprows参数,跳过前面所有无效行,直接读取有效数据区域。
代码示例
import pandas as pd # 替换成你的CSV文件路径 csv_path = "your_target_file.csv" # 遍历文件,统计需要跳过的行数 skip_rows = 0 with open(csv_path, 'r') as f: for line in f: # 按CSV分隔符拆分首列(默认逗号,若为其他分隔符需替换) first_col = line.strip().split(',')[0] if first_col == 'Deal Type': break skip_rows += 1 # 从目标行开始读取数据 df = pd.read_csv(csv_path, skiprows=skip_rows) # 查看前几行验证结果 print(df.head())
注意事项
- 如果CSV使用非逗号分隔符(比如制表符
\t),要同步修改split()和read_csv()的分隔符参数,比如split('\t')和pd.read_csv(..., sep='\t') - 若
Deal Type前后存在空格,需用first_col.strip() == 'Deal Type'的方式判断,避免匹配失败
内容的提问来源于stack exchange,提问作者iBeMeltin
相关产品推荐
相关产品推荐

