Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建一个列表,该列表表示个人可以选择的所有可能路径_Python_Pandas - Fatal编程技术网

Python 创建一个列表,该列表表示个人可以选择的所有可能路径

Python 创建一个列表,该列表表示个人可以选择的所有可能路径,python,pandas,Python,Pandas,以下数据框表示一组个人的假定居住地: import pandas as pd df = pd.DataFrame({'PRESUMED_RESIDENCE':['SJDR1', 'LD1', 'LD2', 'TR1', 'TR2', 'SVM']}) df 我需要创建一个列表,其中包含个人可以采取的所有可能的轨迹-这里我将这些轨迹称为主题-。以下是我预期最终结果的列表示例: MOTIFS = [[SJDR1],[LD1],[LD2], [TR1], [TR2], [SVM], [SJDR1,

以下数据框表示一组个人的假定居住地:

import pandas as pd

df = pd.DataFrame({'PRESUMED_RESIDENCE':['SJDR1', 'LD1', 'LD2', 'TR1', 'TR2', 'SVM']})
df
我需要创建一个列表,其中包含个人可以采取的所有可能的轨迹-这里我将这些轨迹称为主题-。以下是我预期最终结果的列表示例:

MOTIFS = [[SJDR1],[LD1],[LD2], [TR1], [TR2], [SVM], [SJDR1,LD1], [SJDR1,LD2], [SJDR1,TR1],
[SJDR1,TR2], [SJDR1,SVM], [SJDR1, TR1, TR2].....[SJDR1,LD1,LD2,TR1,TR2,SVM]

有了这个列表和完整的数据框架,我可以找到个人的移动模式,看看哪些轨迹是最重复的。但是,我不知道如何生成此列表。有人能帮忙吗?

使用
更多工具。powerset
将生成元组列表,因此使用
map()


检查ITERTOLSIF子列表中的顺序无关紧要这不是列表中非空子集的列表吗?如果是这样的话,有一些解决方案,例如使用itertools.compositions的解决方案。也许您正在寻找
itertools.compositions(['SJDR1','LD1','LD2','TR1','TR2','SVM'],组合数)
import more_itertools
vals = df["PRESUMED_RESIDENCE"].to_list()
out = list(more_itertools.powerset(vals))[1:]
MOTIFS = list(map(list, out))
print(MOTIFS)

>> [['SJDR1'],
 ['LD1'],
 ['LD2'],
 ['TR1'],
 ['TR2'],
 ['SVM'],
 ['SJDR1', 'LD1'],
 ['SJDR1', 'LD2'],
 ['SJDR1', 'TR1'],
 ['SJDR1', 'TR2'],
 ['SJDR1', 'SVM'],
 ['LD1', 'LD2'],
 ['LD1', 'TR1'],
 ['LD1', 'TR2'],
 ['LD1', 'SVM'],
 ['LD2', 'TR1'],
 ['LD2', 'TR2'],
 ['LD2', 'SVM'],
 ['TR1', 'TR2'],
 ['TR1', 'SVM'],
 ['TR2', 'SVM'],
 ['SJDR1', 'LD1', 'LD2'],
 ['SJDR1', 'LD1', 'TR1'],
 ['SJDR1', 'LD1', 'TR2'],
 ['SJDR1', 'LD1', 'SVM'],
 ['SJDR1', 'LD2', 'TR1'],
 ['SJDR1', 'LD2', 'TR2'],
 ['SJDR1', 'LD2', 'SVM'],
 ['SJDR1', 'TR1', 'TR2'],
 ['SJDR1', 'TR1', 'SVM'],
 ['SJDR1', 'TR2', 'SVM'],
 ['LD1', 'LD2', 'TR1'],
 ['LD1', 'LD2', 'TR2'],
 ['LD1', 'LD2', 'SVM'],
 ['LD1', 'TR1', 'TR2'],
 ['LD1', 'TR1', 'SVM'],
 ['LD1', 'TR2', 'SVM'],
 ['LD2', 'TR1', 'TR2'],
 ['LD2', 'TR1', 'SVM'],
 ['LD2', 'TR2', 'SVM'],
 ['TR1', 'TR2', 'SVM'],
 ['SJDR1', 'LD1', 'LD2', 'TR1'],
 ['SJDR1', 'LD1', 'LD2', 'TR2'],
 ['SJDR1', 'LD1', 'LD2', 'SVM'],
 ['SJDR1', 'LD1', 'TR1', 'TR2'],
 ['SJDR1', 'LD1', 'TR1', 'SVM'],
 ['SJDR1', 'LD1', 'TR2', 'SVM'],
 ['SJDR1', 'LD2', 'TR1', 'TR2'],
 ['SJDR1', 'LD2', 'TR1', 'SVM'],
 ['SJDR1', 'LD2', 'TR2', 'SVM'],
 ['SJDR1', 'TR1', 'TR2', 'SVM'],
 ['LD1', 'LD2', 'TR1', 'TR2'],
 ['LD1', 'LD2', 'TR1', 'SVM'],
 ['LD1', 'LD2', 'TR2', 'SVM'],
 ['LD1', 'TR1', 'TR2', 'SVM'],
 ['LD2', 'TR1', 'TR2', 'SVM'],
 ['SJDR1', 'LD1', 'LD2', 'TR1', 'TR2'],
 ['SJDR1', 'LD1', 'LD2', 'TR1', 'SVM'],
 ['SJDR1', 'LD1', 'LD2', 'TR2', 'SVM'],
 ['SJDR1', 'LD1', 'TR1', 'TR2', 'SVM'],
 ['SJDR1', 'LD2', 'TR1', 'TR2', 'SVM'],
 ['LD1', 'LD2', 'TR1', 'TR2', 'SVM'],
 ['SJDR1', 'LD1', 'LD2', 'TR1', 'TR2', 'SVM']]