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)]