Python 将groupby()的结果分配给dataframe列
此groupby()脚本: 生成此对象:Python 将groupby()的结果分配给dataframe列,python,pandas,Python,Pandas,此groupby()脚本: 生成此对象: period tier type first_period_1of2 10-99_cr tup [35] 100-199_cr tup [34] 200-299_cr tup [18] 300-500_cr tup [17
period tier type
first_period_1of2 10-99_cr tup [35]
100-199_cr tup [34]
200-299_cr tup [18]
300-500_cr tup [17]
first_period_2of2 10-99_cr tup [38]
100-199_cr tup [45]
200-299_cr tup [17]
300-500_cr tup [14]
second_period_1of2 30-99_cr tup [35]
100-199_cr tup [46]
200-299_cr tup [18]
300-500_cr tup [25]
second_period_2of2 30-99_cr tup [32]
100-199_cr tup [43]
200-299_cr tup [7]
300-500_cr tup [56]
dtype: object
我想将groupby()脚本([35]、[34]、[18]…)的结果应用回原始数据帧,在一个新列中,分配给满足groupby()条件的行
df.shape
(22588, 17)
我认为你需要:
s = df.groupby(['period', 'tier']).type.value_counts()/df.groupby(['period']).period_days.unique()
df = df.join(s.rename('new'), on=['period','tier'])
你好@jezrael,谢谢你的评论!但是,我收到了此错误消息:
ValueError:len(left_on)必须等于“right”索引中的级别数
s = df.groupby(['period', 'tier']).type.value_counts()/df.groupby(['period']).period_days.unique()
df = df.join(s.rename('new'), on=['period','tier'])