我正在构建一些简单的代码(仍然是新手学习者),该代码基于某些转换来构建统计树。
到目前为止,我编写的代码如下:
#each row reflects a specific user
#first row reflects a user that transitions from 1 to 2 to 3 to 4 and 5
smallData=pd.DataFrame(np.array([[1,2,3,4,5],[4,5,6,7,8],[1,2,3,3,3],[1,2,2,3,3],[1,2,3,5,3]]),columns=range(0,5))
inputs=[1,2]
def nextStep(inputs): #
i=len(inputs)
pickedRows= smallData.loc[(smallData.iloc[:,0:i] == inputs).agg(all, axis=1)]
nextTransitions=pickedRows.loc[:,i].value_counts(normalize=True)
slicedTable=pickedRows.loc[:,i+1:]
return nextTransitions,slicedTable
nextStep([1,2])
Out[272]:
(3 0.75
2 0.25
Name: 2, dtype: float64, 3 4
0 4 5
2 3 3
3 3 3
4 5 3)
nextStep要做的是在1,2处输入转换。
A。查找以1,2开头的所有行
B。用百分比计算下一个过渡。在示例中,3占75%,2占25%
C。作为结果返回包含所有后续转换的表。
Python中用于存储此类过渡(分支及其叶子)的结构是什么。是列表的子列表是实现此数据或熊猫数据框的最佳方法。
我认为,我上面编写的代码应递归执行,直到访问所有表并构造所有分支为止。您将如何存储nextStep函数的中间结果?
感谢您的回复。 问候 亚历克斯