如何将PDF中的Amtrak车站客流及地址数据解析为Pandas DataFrame
Amtrak车站客流PDF解析为指定格式DataFrame
你已经完成了PDF的下载和文本提取,接下来可以通过正则匹配解析文本,最终生成目标格式的Pandas DataFrame,具体实现如下:
解析步骤与代码
- 引入正则模块,编写解析函数匹配年度客流和地址
- 将匹配结果组装成DataFrame并调整列顺序
import re import pandas as pd def parse_pdf_text(pdf_text): # 匹配2016-2022年的客流数据 year_flow_matches = re.findall(r'(2016|2017|2018|2019|2020|2021|2022)\s+(\d+)', pdf_text) flow_dict = {year: int(passenger_num) for year, passenger_num in year_flow_matches} # 匹配地址(匹配以数字开头、以xxxx-xxxx格式邮编结尾的地址内容) address_match = re.search(r'\d+.*?\d{5}-\d{4}', pdf_text) address = address_match.group().strip() if address_match else None # 构建DataFrame并调整列顺序 df = pd.DataFrame([flow_dict]) df['Address'] = address df = df[['2016', '2017', '2018', '2019', '2020', '2021', '2022', 'Address']] return df # 调用解析函数生成DataFrame result_df = parse_pdf_text(pdf_text) print(result_df)
注意事项
- 如果其他车站的PDF文本格式有差异(比如年份与客流数字的分隔符、地址排版不同),需要针对性调整正则表达式的匹配规则
- 若PDF中存在多组年份数据,需添加逻辑过滤出目标年份的客流数据
内容的提问来源于stack exchange,提问作者user2813606
相关产品推荐
相关产品推荐

