Python 对Ecxel文件的某三列数据进行去重,将结果在原文件上添加新列,不改变原有数据。什么代码可以实现unique函数的效果
时间: 2024-10-24 21:10:39 浏览: 8
在Python中,我们可以使用pandas库来处理Excel文件,包括去重和添加新列操作。以下是一个例子,假设你的Excel文件名为'data.xlsx',并且你想要基于三列`column1`, `column2`, `column3`做去重,并在新列`new_column`存储唯一值:
```python
import pandas as pd
# 加载Excel文件
df = pd.read_excel('data.xlsx')
# 定义要去重的列名列表
columns_to_drop_duplicates = ['column1', 'column2', 'column3']
# 使用drop_duplicates函数对指定列去重
df_unique = df.drop_duplicates(subset=columns_to_drop_duplicates, keep='first') # 保留每个唯一组合的第一行
# 检查是否有新增的行数,如果没有变化则说明去重成功
if df_unique.shape[0] == df.shape[0]:
print("去重后的数据量未变,去重已成功")
# 添加新列new_column并填充唯一值
df_unique['new_column'] = df_unique.groupby(columns_to_drop_duplicates).ngroup()
# 将去重后的结果回写到原始Excel文件
with pd.ExcelWriter('data.xlsx', mode='a') as writer: # 'a'代表追加模式
df_unique.to_excel(writer, sheet_name='Sheet1', index=False)
阅读全文