问题是保存一个用于数据分析的字典,以便它可以扩展。 我正在执行10000个搜索,并根据搜索结果为每个查询保存一个字典。最后,我得到了一本字典,如下所示:
{
'query_1' : {'has_result': True (or False),
'direct_result': True (or False),
'title': "title_1",
'summary': "summary_1",
'infobox': {'header_11': "data_11",
'header_12': "data_12",
.
.
.
}
'query_2' : {'has_result': True (or False),
'direct_result': True (or False),
'title': "title_2",
'summary': "summary_2",
'infobox': {'header_21': "data_21",
'header_22': "data_22",
.
.
.
}
.
.
.
}
有问题的部分显然是“infobox”。我不知道每个infobox会得到多少个键值对(通常不超过50个)。而且每个信息框的键应该是不同的
现在,我只能想到以下方法将数据保存为csv
+---------+------------+---------------+---------+-----------+----------------+--------------+
| query | has_result | direct_result | title | summary | infobox_header | infobox_data |
+---------+------------+---------------+---------+-----------+----------------+--------------+
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_1 | data_1 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_2 | data_2 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_3 | data_3 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_4 | data_4 |
| query_1 | TRUE | TRUE | title_1 | summary_1 | header_5 | data_5 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_1 | data_1 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_2 | data_2 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_3 | data_3 |
| query_2 | TRUE | FALSE | title_2 | summary_2 | header_4 | data_4 |
+---------+------------+---------------+---------+-----------+----------------+--------------+
我的解决方案的问题是,'title'和'summary'是一个字符串变量。对于10000个查询来说,这不是什么大事。我最后大概有20万排。但我只是在想,从理论上讲,这是否是保存这本词典用于数据分析的最佳方法
如果将来我使用100000或1000000个查询呢?你将如何着手解决这个问题?你会从一开始就使用不同的数据结构吗?你将如何为数据分析做好准备
对于Python的数据分析,最好的选择是使用类。谢天谢地,有第三方库提供了这种功能,比如Pandas
下面的解决方案使用@MaxU's ^{} recipe
存储的选择是一个广泛的问题,取决于您的用例、需求、现有的基础设施等。一般来说,您可能会发现Pickle和HDF5是足够的;HDF5提供了可移植性优势
相关问题 更多 >
编程相关推荐