如何在python中从数据帧中的列表中迭代搜索变量

2024-10-03 23:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想编写一个python代码,搜索一行,其中给定列中的列表中有某个字符串,然后返回同一行中不同列中的单元格值

我希望它在一个循环中这样做,在名为“name”的列中搜索列表的每个元素(列表称为“files”),然后在“conv”列中返回同一行的值

for f in files:
  name = (f[-21:-6])
  print(name)
  print (df.loc[df.names == name,'conv'].values[0])

我只把这个名字作为一个检查点打印出来,以查看它是否确实通过了列表。没有

print (df.loc[df.names == str(name),'conv'].values[0])'

这个代码有效。添加此行时,我收到一个错误:

索引器错误:索引0超出大小为0的轴0的界限

但是,如果我试图定位一个不是定义为变量而是定义为文本的字符串,那么这一行就行了

print (df.loc[df.names == 'A133C002_201014','conv'].values[0])

但这样我就不能让脚本在我的列表中重复读取

我试着在没有“for”循环的情况下检查这个

name =  'A133C002_201014'
print(df.loc[df.names == name,'conv'].values[0])

而且它也不起作用。因此,我假设问题在于搜索参数是可变的,而不是用倒逗号表示的字符串。这有什么办法吗


Tags: 字符串代码namedf列表for定义names