Python Pandas 数据精简:删除重复行并筛选特定条件数据
Python Pandas 数据精简:删除重复行并筛选特定条件数据
假设你有一个名为 df 的 DataFrame,包含 'code'、'name'、'规模' 等字段,你想对这个 DataFrame 进行精简,删除重复的,并根据以下原则筛选数据:
- 如果 'code' 相同的行里面,如果 'name' 包含 '增强',则选出该行。
- 如果选出来的行多于一行,则再选出 '规模' 最大的行。
以下代码可以实现这个功能:
# 删除重复行
df.drop_duplicates(subset=['code'], keep='first', inplace=True)
# 选出 name 包含 '增强' 的行
df = df[df['name'].str.contains('增强')]
# 如果选出来的多于一行,再选规模最大的
if len(df) > 1:
df = df.loc[df['规模'].idxmax()]
# 输出结果
print(df)
代码说明:
drop_duplicates函数用于删除重复行,其中subset=['code']表示以 'code' 列为准,keep='first'表示保留第一个重复行,inplace=True表示原地修改。df['name'].str.contains('增强')表示选出 'name' 列包含 '增强' 的行。df.loc[df['规模'].idxmax()]表示选出 '规模' 最大的行,其中idxmax()函数返回最大值所在的行索引,loc函数用于根据行索引选出行。
示例:
假设你的 DataFrame df 如下:
| code | name | 规模 | |---|---|---| | 1 | 产品A | 100 | | 1 | 产品B | 150 | | 1 | 产品C 增强 | 200 | | 2 | 产品D | 80 | | 2 | 产品E 增强 | 120 | | 2 | 产品F 增强 | 100 |
经过以上代码处理后,最终输出的 DataFrame df 如下:
| code | name | 规模 | |---|---|---| | 1 | 产品C 增强 | 200 | | 2 | 产品E 增强 | 120 |
总结:
本教程介绍了如何使用 Python Pandas 库对 DataFrame 进行精简操作,并根据特定条件筛选数据,最终保留符合条件且规模最大的数据行。希望对你有所帮助!
原文地址: https://www.cveoy.top/t/topic/jYYM 著作权归作者所有。请勿转载和采集!