通过关联两个独立的数据框架来创建数据框架。 一切正常,无论是单独运行还是在Jupyter中,我都可以独立进行检查。
我刚刚添加了另一条条件来从数据框中删除行-如果它是“ current_edge ['street_name']”的重复项。 测试时,此行在Jupyter笔记本中有效,但当我将其放入函数中时无效。
File inputFile = new File("epafes.txt");
File tempFile = new File("epafesTemp.txt");
BufferedReader reader2 = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String lineToRemove = del;
String currentLine;
while((currentLine = reader2.readLine()) != null) {
// trim newline when comparing with lineToRemove
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove)) continue;
writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader2.close();
if (!inputFile.delete()) {
System.out.println("Could not delete file");
return;
}
//Rename the new file to the filename the original file had.
if (!tempFile.renameTo(inputFile))
System.out.println("Could not rename file");
}
我希望它从当前数据帧中删除一行,但是相反,我在条件代码行“ if edge ['street_name'] ....”中收到KeyError = 0。
说实话,这超越了我:-) 有什么想法为什么它会在函数之外起作用,但是一旦调用就不能起作用?
答案 0 :(得分:0)
我怀疑在row = 0时,此条件为
if abs(current_edge['edgeAzimuth_deg'] - edge_az) <= turn_angle:
edge = edge.drop(row)
因此,删除了索引号0的行。第二个if
条件试图访问索引#0,因此它给出了KeyError
if edge['street_name'][row] == current_edge['street_name']:
edge = edge.drop(row)
在这两个print(edge.index)
之间插入if
,以查看在第一个if
之后是否仍然存在索引号0