我有大量的数据(大约20K行),如下所示。
Caller1 5:30AM Mexico USA 2-22-19
Caller2 1:30AM Mexico USA 2-22-19
Caller3 2:30AM Mexico USA 2-22-19
Caller1 5:30AM Mexico USA 2-22-19
Caller5 3:30AM Mexico USA 2-22-19
Caller3 4:30AM Mexico USA 2-22-19
Caller2 5:30AM Mexico USA 2-22-19
Caller1 7:30AM Mexico USA 2-22-19
Caller12 9:39AM Mexico USA 2-22-19
Caller14 8:36AM Mexico USA 2-22-19
Caller15 2:39AM Mexico USA 2-22-19
Caller16 3:32AM Mexico USA 2-22-19我正在寻找一种基于CallerID隔离数据的方法,如下所示:
Caller1 5:30AM Mexico USA 2-22-19
Caller1 5:30AM Mexico USA 2-22-19
Caller1 7:30AM Mexico USA 2-22-19
---------------------------------
Caller2 1:30AM Mexico USA 2-22-19
Caller2 5:30AM Mexico USA 2-22-1
---------------------------------
.
.我最初将此数据存储为dictionary,并将任何新数据添加到该字典中。
由于初始参数CallerID也是可变的,所以我在隔离时遇到了问题。
我的守则:
>>> input = [('caller1', 'data....'),('caller2','data,,,,,)
>>> from collections import defaultdict
>>> res = defaultdict(list)
>>> for v, k in input: res[k].append(v)由于数据集太大,我不能使用它。
Python中是否有基于句子的第一个单词来隔离数据的包?
发布于 2019-03-06 05:09:44
您可以尝试这种方法,将数据存储在带有键的列表字典中,作为要与ie Caller1、Caller2等进行分组的字符串。
data = ["Caller1 5:30AM Mexico USA 2-22-19",
"Caller2 1:30AM Mexico USA 2-22-19",
"Caller3 2:30AM Mexico USA 2-22-19",
"Caller1 5:30AM Mexico USA 2-22-19",
"Caller5 3:30AM Mexico USA 2-22-19",
"Caller3 4:30AM Mexico USA 2-22-19",
"Caller2 5:30AM Mexico USA 2-22-19",
"Caller1 7:30AM Mexico USA 2-22-19",
"Caller12 9:39AM Mexico USA 2-22-19",
"Caller14 8:36AM Mexico USA 2-22-19",
"Caller15 2:39AM Mexico USA 2-22-19",
"Caller16 3:32AM Mexico USA 2-22-19"]
grouped_data = {}
# ITERATE THE INPUT AND STORE DATA WITH KEY IN DICTIONARY OF LIST
for x in data:
temp: list = []
key = x.split(' ')[0]
if key in grouped_data:
temp = grouped_data.get(key)
temp.append(x)
grouped_data[key] = temp
# PRINT THE DATA AS GROUPED
for k, v in grouped_data.items():
print(f"data for {k}")
for d in v:
print(d)https://stackoverflow.com/questions/55015757
复制相似问题