客群质量分析、特征挖掘——灵活使用pivot_tabl批量获取特征qcut分布情况

场景:
新上线了一个渠道,我需要与现有管理的其他渠道 多维度对比这个渠道的客户质量,最好能批量对比多个特征,尽可能可视化。

ft_list = ['rate1','amt1','cnt1','socre1']
import pandas as pd
for i in ft_list:
	data[i]=data[i].astype('float')
	data[i]=pd.qcut(data[data[i]>-9998)][i],q=5,duplicates = 'drop')
	
tab_list = []
data_last = pd.DataFrame()
val = 'channel_id'
inde = 'trans_id'
for i in ft_list:
	cols = i
	tab = pd.pivot_table(data,values = val,index = inde,columns=cols,aggfunc = 'nunique')
	tab = pd.DataFrame(tab)
	tab['value']=i
	tab_new = tab.groupby(['value']).apply(lambda x:x/s.sum())
	tab_new['value']=i
	data_last = pd.concat([data_last ,tab_new],axis=0)
data_last 
```python

# 优化前的代码
tab_list = []
val = 'channel_id'
inde = 'trans_id'
for i in ft_list:
	cols = i
	dct = lambda x:x.numique()
	tab = pd.pivot_table(data,values = val,index = inde,columns=cols,aggfunc = dct )
	tab = pd.DataFrame(tab)
	tab_list.append(tab)
	tab_list= pd.DataFrame(tab_list)
tab_list

有更好的方法欢迎指教


你可能感兴趣的:(python,pandas,python,数据分析,数据挖掘)