我有一个数据集(csv)的人和他们的投票地点,如:
**Person | Voting Place | VP address | ....**
John Doe | Zoo | 123 fake street | ....
Jane Doe | Zoo | 123 fake street | ....
Joey Ramone | Park | 814 Real Street | ...
我希望将这些数据规范化,以便将位置提取到一个单独的列表中,进行重复数据消除,并分配一个任意的ID#。然后,这些人被存储在一个单独的文件中,引用投票位置ID,而不是实际的信息。在
我了解如何使用python集对一组列进行重复数据消除,并将它们拆分到各自的文件中。我不明白的是,如何获取/分配SET()列表中每个元素的ID,以便以后引用它?这是否可以通过csv在一次迭代中完成,从而使伪代码:
^{pr2}$有没有一种方法可以在纯python/csv中实现这一点,还是需要启动一个适当的关系数据库来完成这项工作?在
你可以用字典。使用投票位置作为关键字,对于相应的值,列出在那里登记的选民的列表:
输出:
^{pr2}$在运行此脚本之间没有保存状态,因此,如果您使用一半的数据集运行它一次,然后再运行其余的数据集,那么相同的“位置id”将被重用,而不考虑第一次运行时生成的id。在
但是,如果您将数据附加到原始数据,并再次运行该程序,则第一次运行生成的id将与第二次运行生成的id相匹配,前提是第一次出现的行中没有任何更改(这就是为什么我们使用
OrderedDict
而不是dict
)。在如果需要持久状态,可以在运行之间始终^{} 和{}字典。或者将已排序的键转储到一个文件中,并用这些键初始化
data
字典。在相关问题 更多 >
编程相关推荐