我是一个完全的Python新手,所以任何帮助或指针都很感激。我有一个input. csv文件,看起来像这样的~500,000行数据:
dwelling,wall,weather,occ
5,2,Ldn,Pen
5,4,Ldn,Pen
3,4,Ldn,Pen
对于输入变量的每个组合,都有一个包含该组合的"结果"的文件夹。我想根据输入路由到每个文件夹。我想到使用一个查找. csv文件来匹配输入与输出文件夹,如下所示:
dwelling,wall,weather,occ,folder
5,2,Ldn,Pen,Semi_detached_solid
5,4,Ldn,Pen,Semi_detached_cavity
3,4,Ldn,Pen,Detached_cavity
但是我不知道从哪里开始,注意输入文件需要是动态的,所以我不能只添加另一列的文件夹名称(我不认为无论如何)。
编辑:在输入. csv中有附加列(连续数据),例如:
dwelling,wall,weather,occ,height,temp
5,2,Ldn,Pen,154.7,23.4
5,4,Ldn,Pen,172.4,28.7
3,4,Ldn,Pen,183.5,21,2
这些额外的值需要被路由到输出文件夹,但它们不需要在look_up.csv中(因为匹配只在分类变量上完成)。
1条答案
按热度按时间qv7cva1a1#
有几种方法可以实现这一点,但我也会使用某种Map。
如果您读取一个MapCSV文件,其中包含需要路由的列和目标文件夹,就像您的示例中那样,我将使用dict进行键/值查找(dict非常快)。
逻辑是将需要路由的列转换为键,并使用目标文件夹作为值。
然后迭代实际的CSV,将相关列转换为键,并使用它查找目标文件夹。
我使用了您提供的示例作为下面的输入文件
输出