我有一个for循环,循环遍历带有数据帧(excel文件的工作表)的数组,我有我的字典值,其中键是工作表中的列名,而值是类。原因是我决定使用模板模式,因此决定使用processData()等。都是我有的方法。
需要注意的一些重要信息:mOAD是字典,而mywdf是数据框,基本上,我试图遍历excel工作表,但我不知道事先有多少列,字典中的哪些项目,或者那里有多少工作表是先于手或将在工作表中的列。
我试图放入不同的条件以及更改数组索引和查找不同的解决方案,但是在这种情况下似乎没有任何适用或起作用。例如:在询问类似问题时出现“系列对象易变且不能被散列”的错误不能提供很好的答案,而且我无法弄清楚该怎么做。我将显示词典的一部分和一个具体的示例类供参考,然后显示我的循环。
mOAD = \
{
#here is sheet 1
"AGE NOW" : aNow(),
"AGE AT DEATH": aAD(),
"BIRTH DATE" : bDay(),
"DEATH DATE" : deDay(),
"MATCH TYPE" : mType(),
"GENDER" : gender(),
"MARITAL" : mar(),
}
#example of concrete class
class bDay(iterator):
def processData(self):
print("as")
def evaluateData(self):
print(" we")
def explainData(self):
print(" go")
#now the loop
z = 1
while z < numSheet:
for i, j in mywdf[z].iterrows():
# print(i)
print(j)
if i > 0:
mOAD[j].processData()
mOAD[j].evaluateData()
mOAD[j].explainData()
z += 1
我希望它可以理想地标识列,然后为相应的列名称调用具体类中的函数。抱歉,这很令人困惑,但我会尽力澄清。这是我第二次发布此问题,因为我真的找不到任何有效的方法。预先感谢!