我有一个包含以下各列的数据框:
duration, cost, channel
2 180 TV1
1 200 TV2
2 300 TV3
1 nan TV1
2 nan TV2
2 nan TV3
2 nan TV1
1 40 TV2
1 nan TV3
一些成本值是nans,要填充它们,我需要执行以下操作:
按渠道分组
在一个渠道中,将可用成本相加,然后除以*次出现的次数(平均)
重新分配该通道内所有行的值:
如果持续时间= 1,费用=平均值* 1.5
如果持续时间= 2,则费用=平均
示例:TV2频道,我们有3个条目,其中一个条目的费用为零。因此,我需要执行以下操作:
average = 200+40/3 = 80
if duration = 1, cost = 80 * 1.5 = 120
duration, cost, channel
2 180 TV1
1 120 TV2
2 300 TV3
1 nan TV1
2 80 TV2
2 nan TV3
2 nan TV1
1 120 TV2
1 nan TV3
我知道我应该做df.groupby('channel')然后将功能应用于每个组。问题是,我不仅需要修改空值,而且如果1成本为空,则需要修改组中的所有成本值。
回首忆惘然
慕婉清6462132
相关分类