簡體   English   中英

Pandas GroupBy 在一列列表中列出值並找到它們的平均值

[英]Pandas GroupBy list values in a column of lists and find their mean

我有一個大的 pandas dataframe (1M 行),格式如下:

data = {
    'names': {0: ['Lily', 'Kerry', 'Mona'], 1: ['Kerry', 'Mona'], 2: ['Mona']},
    'sentiment': {0: 10, 1: 2, 2: 0}
}
df = pd.DataFrame(data)
df

                 names  sentiment
0  [Lily, Kerry, Mona]         10
1        [Kerry, Mona]          2
2               [Mona]          0

我想計算名稱列中每個唯一名稱的平均情緒,結果如下:

   names  sentiment
0   Lily         10
1  Kerry          6
2   Mona          4

唯一名稱的數量非常長,因此效率很重要

這需要首先在“名稱”列上展開,然后是標准GroupBy.mean()

df.explode('names').groupby('names', as_index=False, sort=False).mean()

   names  sentiment
0   Lily         10
1  Kerry          6
2   Mona          4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM