我想根据多个条件从数据框创建查找表。我有以下DF:从数据框创建查找表
N = 100
L = ['AR1', 'PO1', 'RU1']
np.random.seed(0)
df3 = pd.DataFrame(
{'X':np.random.uniform(1,4,N),
'Y':np.random.uniform(1,4,N),
'Z':np.random.uniform(1,4,N),
'LG':np.random.choice(L,N),
})
df3['bins_X'] = df3.groupby('LG')['X'].apply(pd.qcut, q=5, labels=np.arange(5))
df3['bins_Y'] = df3.groupby('LG')['Y'].apply(pd.qcut, q=5, labels=np.arange(5))
df3['bins_Z'] = df3.groupby('LG')['Z'].apply(pd.qcut, q=5, labels=np.arange(5))
df3['bins_X_int'] = df3.groupby('LG')['X'].apply(pd.qcut, q=5)
df3['bins_Y_int'] = df3.groupby('LG')['Y'].apply(pd.qcut, q=5)
df3['bins_Z_int'] = df3.groupby('LG')['Z'].apply(pd.qcut, q=5)
df3.head()
从中我想创建以下lookup_table:
因此,通过 'LG' 分组,从0排垃圾箱到4.我需要的是示例lookup_table填充与数据框中的关联bin_intervals。
感谢piR,一个问题。您再次使用qcut再次使用这个新表,这个返回的结果是否与我用于创建原始数据框的原始qcut完全相同? – Zanshin
另一个问题,也许你没有注意到,但我添加了一个新的问题:http://stackoverflow.com/questions/42094873/incorrect-results-when-applying-solution-to-real-data,关于使用您的解决方案到另一个。你可以看看吗? – Zanshin
是的!这意味着你可以使用查找表来填写'df3'的其余部分。你称它6次。这样,你只需要调用它3次。我会继续努力展示这方面的内容。 – piRSquared