我想根據多個條件從數據框創建查找表。我有以下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