在下面的代码中,我尝试为数据帧的每一行获取'proid‘值和'uim’值。我尝试从“proid”值解析第一个和第二个值,并使用它们为每个记录创建一个新目录。例如,对于第一条记录,它将为第二条记录创建目录'/stuff/_place/1/2‘,它将是'/stuff/_place/2/2’。我遇到的问题是,它只是创建了从1到9的目录,也就是'/stuff/_place/1‘到’/stuff/_place/9‘,尽管其中许多数字并没有出现在数据帧的记录中。有没有人知道问题出在哪里,以及我如何才能实现我最初的目标?
当我使用.iloc对数据帧中的第一条记录进行测试时,代码工作正常,就像下面注释掉的代码一样。当我尝试像下面的例子一样使用iterrows时,它开始产生额外的目录。
How to iterate over rows in a DataFrame in Pandas?
Code:
# iterows through whole data frame
sampleDf=testDf
for index, row in sampleDf.iterrows():
pid=row['proid'] #sampleDf['proid'].iloc[0]
ImgUrl=row['uim'] #sampleDf['uim'].iloc[0]
# file path where images stored
basePath=‘/stuff/_place/‘
# 1st digit
dig1=str(pid)[0]
# 2nd digit
dig2=str(pid)[1]
# checking if directory exists and making new directory if it doesn't
directory=basePath+dig1+'/'+dig2
if not os.path.exists(directory):
os.makedirs(directory)
Data:
proid uim
123 red
224 veg
456 fog 发布于 2018-03-27 19:46:14
有什么问题吗?我必须编辑代码以使其运行,并且它可以毫无问题地工作。下一次,编写代码,以便可以复制和传递它,然后运行它,而不需要更改任何东西。
下面的代码改编自您的代码
import os
import numpy as np
import pandas as pd
# iterows through whole data frame
sampleDf= pd.DataFrame([[123, 'red'], [224, 'veg'], [456, 'fog']],columns=['proid', 'uim'])
for index, row in sampleDf.iterrows():
pid=row['proid'] #sampleDf['proid'].iloc[0]
ImgUrl=row['uim'] #sampleDf['uim'].iloc[0]
# file path where images stored
basePath="/stuff/_place/"
# 1st digit
dig1=str(pid)[0]
# 2nd digit
dig2=str(pid)[1]
# checking if directory exists and making new directory if it doesn't
directory=basePath+dig1+'/'+dig2
if not os.path.exists(directory):
os.makedirs(directory)创建以下目录:

https://stackoverflow.com/questions/49504321
复制相似问题