我如何优雅地将下面的递归 SQL 查询移植到 Pandas python 代码?不知何故,如果不编写自己的递归函数,我就看不到直接的方法?
Python示例代码:
import datetime
import numpy as np
import pandas as pd
import pandas.io.data
from pandas import Series, DataFrame
data = {
'ID': [1,2,3,4,5,6,7,8],
'Name': ['Keith','Josh','Robin','Raja','Tridip','Arijit','Amit','Dev'],
'MgrID': [0,1,1,2,0,5,5,6]
}
df = pd.DataFrame.from_dict(data)
df.set_index('ID', inplace=True, drop=False, append=False)
df.ix[df.query('MgrID >0')['MgrID']]
Run Code Online (Sandbox Code Playgroud)
试图得到这个:
nLevel ID Name
================================
1 6 Arijit
2 8 Dev
1 1 Keith
2 2 Josh
2 3 Robin
3 4 Raja
1 5 Tridip
2 7 Amit
Run Code Online (Sandbox Code Playgroud)
递归 SQL 查询:
;WITH Employee (ID, Name, MgrID) …Run Code Online (Sandbox Code Playgroud)