Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在数据帧中选择相应的列字段值?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何在数据帧中选择相应的列字段值?

Python 如何在数据帧中选择相应的列字段值?,python,pandas,dataframe,Python,Pandas,Dataframe,因此,我创建了一个数据框架,如下所示- |id | Image_name | result | classified | ------------------------------------------------- |01 | 1.bmp | 0 | 10 | |02 | 2.bmp | 1 | 11 | |03 | 3.bmp | 0

因此,我创建了一个数据框架,如下所示-

|id    |  Image_name   | result   | classified  |
-------------------------------------------------
|01    |  1.bmp        |  0       |  10         |
|02    |  2.bmp        |  1       |  11         |
|03    |  3.bmp        |  0       |  10         |
|04    |  4.bmp        |  2       |  12         |
现在,在我的目录中有一个名为images的文件夹,其中存储了所有.bmp文件(1.bmp、2.bmp、3.bmp、4.bmp等等)


我试图编写一个脚本,自动在数据框的“Image_name”中查找这些文件,并分别返回它们的结果和分类值

 import pandas as pd
 import glob
 import os
 data = pd.read_csv("filename.csv")
 for file in glob.glob("*.bmp"):
     fname = os.path.basename(file)

这是我的初始代码,我想找到提取的所有fname,然后检查数据框中是否存在以下fname,并显示其结果和分类列。

似乎您只想访问
Image\u name
与文件相同的行,并获得
结果
分类

试试这个:

将熊猫作为pd导入
从io导入StringIO
df=pd.read\u csv(StringIO(“”)
id |图像|名称|结果|分类
01 | 1.bmp | 0 | 10
02 | 2.bmp | 1 | 11
03 | 3.bmp | 0 | 10
04 | 4.bmp | 2 | 12
“”“”,sep=r“\s+\\\s+”)
file_example=“2.bmp”
打印(df[df['Image\u name']==文件示例][[“结果”,“分类”]])

首先从文件夹中获取所有图像名称并存储在列表中

all_files_names=os.listdir("#path to the dir") 

df.loc[df['Image_name'].isin(all_files_names)]
输出(假设所有四个都存在)


您可以为此使用布尔掩蔽。你可以在下面的链接中阅读更多关于它的信息


希望这有帮助

如果您需要对许多图像使用相同的算法(几千/十万)。在执行数据帧中的
.isin()
方法之前,最好使用筛选器所需的列作为数据帧的索引

image_file_names=os.listdir("#path to the dir")

df = df.set_index(df['Image_name'])

df = df.loc[df.index.isin(image_file_names)]

希望这有帮助:)

您的初始代码必须是“结果值和分类值”。您的意思是什么?
for file_name in df['Image_name']:
    print(df[df['Image_name']== file_name][['result', 'classified']])
image_file_names=os.listdir("#path to the dir")

df = df.set_index(df['Image_name'])

df = df.loc[df.index.isin(image_file_names)]