You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用isin筛选DataFrame时仅返回CSV首行数据的问题排查

问题原因与解决方案

你的问题出在读取无表头CSV文件的方式上:

  • 当你用pd.read_csv("symbols.csv")读取没有表头的CSV时,pandas会默认把第一行内容AKAM当成DataFrame的列名,第二行AKRO当成唯一的数据行。此时mikey_symbols是一个仅包含1行1列的DataFrame,列名为AKAM。
  • 用这样的DataFrame传入isin()时,pandas只会尝试匹配列名AKAM,自然只会返回对应的数据,而忽略AKRO。

修正方法

你需要明确告诉pandas这个CSV没有表头,把所有行都当作数据读取:

方法1:指定header=None并转为列表/Series

# 转为列表
mikey_symbols = pd.read_csv("symbols.csv", header=None)[0].tolist()
# 或者转为Series(isin支持直接传入Series)
mikey_symbols = pd.read_csv("symbols.csv", header=None, squeeze=True)

方法2:手动指定列名后提取数据

mikey_symbols = pd.read_csv("symbols.csv", names=['symbol'])['symbol'].tolist()

修正后的完整代码

origin_symbols = pd.read_sql_query("SELECT  id, symbol, name from stock", conn)
mikey_symbols = pd.read_csv("symbols.csv", header=None, squeeze=True)
df = origin_symbols[origin_symbols['symbol'].isin(mikey_symbols)]

此时就能同时匹配到AKAM和AKRO对应的两条数据了。

内容的提问来源于stack exchange,提问作者a7dc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:32:09