gpt4 book ai didi

python - 在groupby子句python pandas中获取列均值

转载 作者:行者123 更新时间:2023-11-28 21:36:37 25 4
gpt4 key购买 nike

我有一个 Actor 和导演的数据集,以及他们合作的电影的受欢迎程度。

print (actors_director_df.head(3))

actor director popularity counter
0 Chris Pratt Colin Trevorrow 32.985763 0
1 Bryce Dallas Howard Colin Trevorrow 32.985763 0
2 Irrfan Khan Colin Trevorrow 32.985763 0

我想使用 Actor 和导演来分组,因为一对可以在不止一部电影中工作。我成功地使用了下面的查询。

actor_director_grouped = actors_director_df.groupby(['actor','director']) \
.size() \
.reset_index(name='count') \
.sort_values(['count'], ascending=False) \
.head(10)

print (actor_director_grouped)

actor director count
3619 Clint Eastwood Clint Eastwood 14
19272 Woody Allen Woody Allen 12
9606 Johnny Depp Tim Burton 8

但是流行度列在这个 DF 中丢失了。

我想做的是在 groupby 之后做一个人气列的平均值,并在 Actor 和导演面前显示平均值以及他们一起拍摄的电影数量。

即我理想的输出应该是这样的。

                      actor            director  popularity count
3619 Clint Eastwood Clint Eastwood 32.985763 14
19272 Woody Allen Woody Allen 5.1231231 12
9606 Johnny Depp Tim Burton 3.1231231 8

最佳答案

查看您的数据框,counter 列似乎是不必要的。让我们改为使用流行度列并制作一个 mean 和一个 count 列:

import pandas as pd
import numpy as np

np.random.seed(444)

names = [
'Robert Baratheon',
'Jon Snow',
'Daenerys Targaryen',
'Theon Greyjoy',
'Tyrion Lannister'
]

df = pd.DataFrame({
'actor': np.random.choice(names, size=10, p = [0.2,0.2,0.2,0.1,0.3]),
'director': np.random.choice(names, size=10, p = [0.4,0.1,0.1,0.1,0.3]),
'popularity': np.random.randint(0,100, size=10),
'counter': 0
})

df2 = df.groupby(['actor','director'])['popularity']\
.agg(['count', 'mean'])\
.reset_index()\
.sort_values(by='mean', ascending=False)

print(df2)

返回:

              actor          director  count  mean
0 Jon Snow Robert Baratheon 2 53.5
5 Tyrion Lannister Tyrion Lannister 2 49.0
2 Robert Baratheon Tyrion Lannister 2 48.5
1 Robert Baratheon Jon Snow 2 40.5
4 Theon Greyjoy Tyrion Lannister 1 13.0
3 Theon Greyjoy Robert Baratheon 1 7.0

关于python - 在groupby子句python pandas中获取列均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50747681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com