在Python中对group by的结果应用转换函数

问题描述 投票:0回答:1
import pandas as pd 
  
data = {
    'Name': ['Alice', 'Alice', 'Charlie', 'Charlie'],
    'Age': [25, 30, 35, 40],
    'branch': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
  
# concatenate the string 
df['branch'] = df.groupby(['Name'])['branch'].transform(lambda x : ' '.join(x))    
  
# show the dataframe 
print(df) 

任何人都可以解释当我们对 group by 的结果应用转换函数时会发生什么?我得到的输出是

姓名 年龄 分行
爱丽丝 25 纽约洛杉矶
爱丽丝 30 纽约洛杉矶
查理 35 芝加哥 休斯顿
查理 40 芝加哥 休斯顿
python pandas dataframe group-by transform
1个回答
0
投票

使用

groupby
列作为分组键将
Name
函数应用于 df。这意味着 df 根据
Name
列中的唯一值分为几组。

应用的

transform
函数中接下来发生的事情是将 lambda 函数独立地应用于每个组。 lambda 函数
lambda x: ' '.join(x)
应用于每组
branch
值。此函数采用一组
branch
值(由 x 表示),并使用
' '.join(x)
表达式将它们连接成一个以空格分隔的字符串,该表达式返回一个
pd.Series
,最终分配回
branch
列。

© www.soinside.com 2019 - 2024. All rights reserved.