如何为表格新增常量列(值为另一列最小值)且不生成汇总结果?
解决方案:为表格新增填充另一列最小值的列(保留全量行输出)
R(dplyr)场景
summarize()本身就是用来汇总压缩行的,要保留原表所有行的话,直接用mutate()配合min()就行——mutate()会在原表结构基础上新增列,自动把整列的最小值广播到每一行:
library(dplyr) # 假设你的数据框是df,要取最小值的列是value_col,新列命名为min_value df <- df %>% mutate(min_value = min(value_col, na.rm = TRUE))
na.rm = TRUE用来忽略缺失值,数据无缺失时可以去掉这个参数。
Python(pandas)场景
pandas里直接取目标列的最小值,赋值给新列就会自动把该值填充到所有行,完全保留原表的行数和结构:
import pandas as pd # 假设你的数据框是df,要取最小值的列是value_col,新列命名为min_value df['min_value'] = df['value_col'].min() # 也可以用assign做链式操作 df = df.assign(min_value=df['value_col'].min())
分组取最小值填充的扩展场景
如果需要按某列分组,每组内填充该组的最小值,方法如下:
- R(dplyr):
df <- df %>% group_by(group_col) %>% mutate(group_min = min(value_col, na.rm = TRUE)) %>% ungroup()
- Python(pandas):
df['group_min'] = df.groupby('group_col')['value_col'].transform('min')
内容的提问来源于stack exchange,提问作者Khulekani
相关产品推荐
相关产品推荐

