# 将df按照‘key’列进行分组,求每组数据每列的均值,并用transform方法将每行数据填充为所属分组每列的均值
时间: 2024-10-13 13:14:28 浏览: 35
在Pandas中,如果你想要按照'key'列对DataFrame `df` 进行分组,并计算每个分组内每列的平均值(均值),然后使用`transform`方法将每个数据点替换为其所在分组的相应列均值,你可以这么做:
```python
group_means = df.groupby('key').mean()
transform_df = df.transform(lambda x: x.fillna(x.mean()))
```
首先,`groupby('key')`创建了一个GroupBy对象,然后`.mean()`应用于这个对象,得到一个新的DataFrame `group_means`,其中每一行都是'key'对应的分组的均值。
接下来,`transform(lambda x: x.fillna(x.mean()))`将原始DataFrame `df` 通过一个匿名函数传递给`transform`方法。在这个匿名函数里,`fillna`函数将缺失值替换为其所在列的平均值,也就是`x.mean()`。这意味着对于每个非空值,其所在的行会被填充为其所在分组的均值;而缺失值则直接用该列的平均值填充。
这样,`transform_df`就得到了一个新的DataFrame,其中的数据已经被转换为所属分组的每列均值。
阅读全文