Excel 单元格去重及单元格内容去重

import pandas as pd

# 读取Excel文件
file = r"D:\\pythonXangmu\\quchong\\quchong.xlsx"  # 使用原始字符串以避免转义字符
df = pd.read_excel(file, sheet_name='nameSheet')

# 删除重复值(单元格)
df2 = df.drop_duplicates(subset='name')

# 从列中提取值
names = df2['name'].astype(str).tolist()  # 将name列转换为字符串类型,解决单元格里有纯数字报不是int问题
ages = df2['age'].tolist()

# 删除单元格内重复值
unique_names = ["".join(set(name)) for name in names]

# 创建一个新的DataFrame
df3 = pd.DataFrame({'name': unique_names, 'age': ages})

# 将新的DataFrame写入Excel文件
df3.to_excel('D:\\pythonXangmu\\quchong\\3quchong5.xlsx', sheet_name='Sheet1', index=False)

# 读取新创建的Excel文件
df5 = pd.read_excel('3quchong5.xlsx', sheet_name='Sheet1')
print('去重后5\n', df5)

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴为您解答,可以使用VBA函数来去除Excel单元复的数据。首先,打开VBA编辑器,在模块中添加以下代码:Sub Remove_Dupes()Dim Lrow As Long, Dic As Object, K As VariantSet Dic = CreateObject("Scripting.Dictionary")With Sheets("Sheet1")Lrow = .Cells(Rows.Count, "A").End(xlUp).RowFor i = 2 To LrowK = .Cells(i, 1).ValueIf Not Dic.exists(K) ThenDic.Add K, NothingElse.Cells(i, 1).ClearContentsEnd IfNext iEnd WithEnd Sub然后运行该函数,即可完成去操作。 ### 回答2: 使用VBA可以轻松地进行Excel工作表中同一单元内容的去操作。下面是一种实现方法: 1. 首先,打开Excel工作表,按下`ALT + F11`进入VBA编辑器。 2. 在VBA编辑器中,选择当前工作簿的VBA项目,在项目浏览器窗口中右击,选择"插入" -> "模块",在VBA项目中创建一个新的模块。 3. 在新建的模块中,输入以下代码: ```vba Sub 去() Dim ws As Worksheet Dim rng As Range Dim cell As Range Set ws = ThisWorkbook.ActiveSheet Set rng = ws.UsedRange ' 范围可以根据具体需求修改 For Each cell In rng If cell.Value <> "" Then ' 确保单元不为空 cell.Value = application.Trim(cell.Value) ' 去除字符串两边的空 cell.Value = application.WorksheetFunction.Trim(cell.Value) ' 去除字符串中间的多余空 End If Next cell rng.RemoveDuplicates Columns:=1, Header:=xlNo ' 去操作 Set rng = Nothing Set ws = Nothing End Sub ``` 4. 运行完以上代码后,可以按下`F5`或点击运行按钮,即可执行去操作。 以上代码实现的去操作是针对选定的范围(在代码中的`rng`)进行的。可以根据具体需求修改范围。此外,代码中使用`Trim`函数去除字符串两边的空,可以避免潜在的去错误。 希望以上解答能对您有所帮助! ### 回答3: 使用VBA可以轻松将Excel中的同一单元内容。下面是一种简单的方法: 1. 打开Excel并按下`ALT+F11`打开VBA编辑器。 2. 在VBA编辑器中,选择`插入`> `模块`以创建一个新模块。 3. 在新模块中输入以下代码: ``` Sub RemoveDuplicates() Dim rng As Range Dim cell As Range '选择需要去单元范围 Set rng = Range("A1:A10") '将"A1:A10"替换为你要去单元范围 '循环遍历选中的单元范围 For Each cell In rng '使用RemoveDuplicates方法去 cell.RemoveDuplicates Columns:=1, Header:=xlNo Next cell End Sub ``` 4. 替换代码中的范围`"A1:A10"`为你所需去单元范围。例如,如果要去的是A列的所有单元,则可以使用`"A:A"`。 5. 按下`F5`运行代码。 6. 单元范围内的内容将被删除,只保留唯一值。 请记住保存你的更改并备份你的数据,以防止不必要的数据损失。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值