如何在Python中提取列表中的Ticker数据并转换为DataFrame
提取Tabula读取PDF后的Ticker单列数据
问题背景
使用Tabula读取PDF后得到一个包含DataFrame的列表,需要从中提取Ticker列并转为单列DataFrame/Series:
file_path = "FQAL.pdf" df = tabula.read_pdf(file_path, pages='all', encoding='cp1252')
解决方案
Tabula的read_pdf在指定pages='all'时,返回的是多个DataFrame组成的列表(每页对应一个DataFrame),分两种场景处理:
场景1:PDF仅一页表格(列表仅含一个DataFrame)
直接提取目标列并转为单列DataFrame:
import pandas as pd # 提取Ticker列并转为DataFrame ticker_df = df[0][['Ticker']] # 若需要Series格式 ticker_series = df[0]['Ticker']
场景2:PDF含多页表格(列表含多个DataFrame)
遍历列表收集所有Ticker数据,再合并为单列:
import pandas as pd all_tickers = [] for page_data in df: # 跳过无Ticker列的异常页 if 'Ticker' in page_data.columns: all_tickers.append(page_data['Ticker']) # 合并所有数据并转为单列DataFrame ticker_series = pd.concat(all_tickers, ignore_index=True) ticker_df = pd.DataFrame(ticker_series, columns=['Ticker'])
可选:清理缺失值
如果数据中有空值,可添加清理步骤:
ticker_df = ticker_df.dropna().reset_index(drop=True)
内容的提问来源于stack exchange,提问作者F Skinner
相关产品推荐
相关产品推荐

