python - Pandas 用于部分重复的行,保留行并用最小值或最大值替换数据
问题描述
这是我最初的数据框的样子:
pd.DataFrame({'a':['a','b','b','c'],
'b': [1,2,3,4],
'c': [2,3,4,1],'d':[1.1,1.2,1.3,1.4]})
a b c d
0 a 1 2 1.1
1 b 2 3 1.2
2 b 3 4 1.3
3 c 4 1 1.4
对于 a 列中的重复值,我想保留b列的最小值和c列的最大值
输出应该是这样的:
a b c d
0 a 1 2 1.1
1 b 2 4 1.2
2 b 2 4 1.3
3 c 4 1 1.4
有没有这样做的熊猫功能?我试着调查
pandas.DataFrame.drop_duplicates
pandas.DataFrame.duplicated
但是,我没有找到适合我的用例的任何东西。
解决方案
使用GroupBy.transform
withmin
和max
what 为唯一组返回相同的值:
df = pd.DataFrame({'a':['a','b','b','c'],
'b': [1,2,3,4],
'c': [2,3,4,1],'d':[1.1,1.2,1.3,1.4]})
df['b'] = df.groupby('a')['b'].transform('min')
df['c'] = df.groupby('a')['c'].transform('max')
print (df)
a b c d
0 a 1 2 1.1
1 b 2 4 1.2
2 b 2 4 1.3
3 c 4 1 1.4
推荐阅读
- python-3.x - 在 grunt exec 中指定具有后备功能的 python 版本
- visual-studio-code - VSCode 禁用高亮匹配
- asp.net - 在 Visual Studio 2019 中,无法为 Web 应用调试设置物理路径
- python - Python:如何在没有操作系统特定库/特定脚本的情况下导出环境 .yml 文件?
- python - 从数据框中删除方括号和撇号
- reactjs - React-Materialize Modal :任何键都会意外关闭模态
- c++ - 在 C++ 中为公共类变量声明两种或多种类型
- unit-testing - 在 Azure Devops yaml 构建管道中运行时如何指定 SSDT 单元测试的连接详细信息
- azure-storage - Azure Java SDK:具有多个卷的容器
- repository - DDD 中的存储库应该返回什么