所以我有一个存储为pandas数据帧对象的文件字典,我通过for循环访问每个文件以提取“国家/地区”。柱。我要做的是将每个提取到一个列表中,然后获取整个列表列表的集合。这是代码和我的困境:
country_setter = []
for file in files_list:
country_setter.append(all_comps[file]['Country'].tolist())
uni_country_setter = ?
结果输出是一个列表列表,每个pandas df [' Country']列在父列表中列出一个列表。它看起来像这样:
[['France',
'United States',
'Poland',
'Poland',
'Poland',
'Poland',
'Hungary',
'Poland',
'France',
'United Kingdom',
....
'Namibia',
'China',
'China',
'Ireland'],
['Netherlands',
'Canada',
'United States',
'Canada',
'Canada',
'United States',
'Sweden',
'Sweden',
'United Kingdom',
....
'Ireland',
'Netherlands',
'Netherlands',
'France',
'Hong Kong',
'France',
'France',
'United States',
'France',
'United States']]
它是一个包含40个单独列表的列表。我可以使用set(country_setter [0]),它可以很好地为我提供第一个列表的唯一值,但我需要知道所有文件的唯一值。
如果您有任何人可以提供帮助,请与我们联系。我通过stackoverflow进行了仔细研究,发现只有一个问题略有相似,但他们的目标是在独特的提取和使用的itertools中维护列表结构。我想在这里列出所有列表中的唯一个人值。
提前谢谢!
答案 0 :(得分:1)
我认为您需要展平列表,然后按set
创建唯一列表:
uni_country_setter = list(set([item for sublist in country_setter for item in sublist]))
编辑:
不需要第一个循环,可以使用:
uni_country_setter = list(set([item for file in files_list
for item in all_comps[file]['Country'].tolist()]))