Python Pandas 数据精简:删除重复行并筛选特定条件数据

假设你有一个名为 df 的 DataFrame,包含 'code'、'name'、'规模' 等字段,你想对这个 DataFrame 进行精简,删除重复的,并根据以下原则筛选数据:

  1. 如果 'code' 相同的行里面,如果 'name' 包含 '增强',则选出该行。
  2. 如果选出来的行多于一行,则再选出 '规模' 最大的行。

以下代码可以实现这个功能:

# 删除重复行
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 进行精简操作,并根据特定条件筛选数据,最终保留符合条件且规模最大的数据行。希望对你有所帮助!

Python Pandas 数据精简:删除重复行并筛选特定条件数据

原文地址: https://www.cveoy.top/t/topic/jYYM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录