gpt4 book ai didi

python - 唯一的从到组合,在可变循环中它之后的所有持续时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:15:31 25 4
gpt4 key购买 nike

我在从用 BASH 或 Python 循环中的唯一值压缩的日志文件中获取信息时遇到问题。

我有一个巨大的日志文件,我对其进行了 grep 以查找特定国家/地区的信息,以仅获取 csv 中唯一的“从街道、城市”和“到街道、城市”和旅行持续时间格式。

同样计算往返于同一条街道和相同持续时间的同一条街道,但显示为 1 个条目和点击次数。

我还设法对它们进行排序,使其首先在同一个“从街道”上排序,然后在“到街道”上排序。

但我想要的是相同的从街道到街道,以及之后的所有不同持续时间。

输入 CSV:

 from-street,from-city,destination-street,destination-city,duration
Street1,City1,Street2,City2,30min
Street1,City1,Street2,City2,10min
Street1,City1,Street2,City2,15min
Street1,City1,Street3,City3,28min
Street1,City1,Street3,City3,20min
Street1,City1,Street3,City3,5min
Street2,City2,Street4,City4,12min

需要循环的输出变量:

$from-street,$from-city,$destination-street,$destination-city,$duration1,$duration2,$duration3
Street1,City1,Street2,City2,30min,10min,15min
Street1,City1,Street3,City3,28min,20min,5min
Street2,City2,Street4,City4,12min

我希望有人能帮我解决这个问题,因为我做了第一个扩展的 grep 命令并将唯一值放在 csv 格式中,所以我坚持下一部分,如上所述。

也许 Bash 是首选方式,因为您可以在 1 个流畅的脚本中的循环之前直接使用 grep。但我也在努力学习 Python,所以也很受欢迎。

谢谢大家

最佳答案

在 Python 中,您可以创建 Street1, City1, Street2, City2tuple 作为 dict< 的键 对象并使用 collections.defaultdict附加值。

当您读取您的csv 文件时,您将获得如下列表:

my_csv = [ ['Street1', 'City1','Street2','City2','30min'],
['Street1', 'City1','Street2','City2','10min'],
['Street1', 'City1','Street3','City3','28min']]

然后您以所需格式存储值的代码将是:

from collections import defaultdict

my_dict = defaultdict(list)

for item in my_csv:
my_dict[tuple(item[:4])].append(item[4])

my_dict 持有的最终值将是:

{
('Street1', 'City1', 'Street2', 'City2'): ['30min', '10min'],
('Street1', 'City1', 'Street3', 'City3'): ['28min']
}

注意:字典本质上是无序的。因此,您将失去该行的出现顺序。

关于python - 唯一的从到组合,在可变循环中它之后的所有持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com