在用Pandas读取的CSV数据中查找某个值

编程语言 2026-07-08

我用Pandas读取一个CSV文件:

import pandas as pd
fcsv = pd.read_csv("my_file.csv", sep=";", usecols=[4,6])
print(fcsv)
                       ID    Use_Fuel
0      15454509, 00664154          No
1      00928674, 10974172          No
2      15453278, 07320582          No
3      15308995, 10810706          No
4      0147006X, 15454126          No
...                   ...         ...
17173            14322919          No
17174  23672293, 03422852          No
17175            03404560          No
17176  27481956, 27481964          No
17177  18600743, 14351935         Yes

字段ID包含元素的标识符,对每一个元素来说,标识符可能只有一个,也可能有两个。问题在于:给定一个标识符,例如 "07320582",如何找到它出现的行号(示例中的位置为2)?

我已经尝试了

"07320582" in fcsv["ID"]

但它返回一个单独的 False。我也检查了

fcsv["ID"] == "07320582"

但它返回一个 False 的向量。若我尝试

fcsv["ID"] == "15453278, 07320582"

则在位置2 返回 True,但我需要一次只检查一个ID,即像

fcsv["ID"] == "07320582"

那该如何实现?

解决方案

df = pd.read_csv("my_file.csv", sep=";", usecols=\[4, 6\])

\# Explode the comma-separated IDs into one row per ID

df = df.assign(ID=df\["ID"\].str.split(r",\\s\*")).explode("ID")

\# Now exact lookup works fine

df\[df\["ID"\] == "07320582"\]
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章