【发布时间】:2019-01-31 01:11:59
【问题描述】:
我有如下数据:
id movie details value
5 cane1 good 6
5 wind2 ok 30.3
5 wind1 ok 18
5 cane1 good 2
5 cane22 ok 4
5 cane34 good 7
5 wind2 ok 2
我想要具有以下条件的输出:
如果电影名称以“cane”开头 - 求和
如果电影名称以“风”开头 - 计算出现次数。
所以 - 最终输出将是:
id movie value
5 cane1 8
5 cane22 4
5 cane34 7
5 wind1 1
5 wind2 2
我尝试使用:
movie_df.groupby(['id']).apply(aggr)
def aggr(x):
if x['movie'].str.startswith('cane'):
y = x.groupby(['value']).sum()
else:
y = x.groupby(['movie']).count()
return y
但它不起作用。有人可以帮忙吗?
【问题讨论】:
-
我看到
cane的值 = 19,即 6 + 2 + 4 + 7。