openpyxl 列中重复
时间: 2023-11-08 20:06:04 浏览: 72
如果要在 openpyxl 中查找某一列中的重复值,可以使用 pandas 库来实现。具体步骤如下:
1. 将 excel 文件读入 pandas 的 DataFrame 中
2. 使用 pandas 的 duplicated() 函数查找重复值
3. 将结果写入 excel 文件中
以下是示例代码:
```python
import pandas as pd
from openpyxl import load_workbook
# 读取 excel 文件
wb = load_workbook('example.xlsx')
ws = wb.active
# 将数据读入 pandas 的 DataFrame 中
data = ws.values
cols = next(data)
df = pd.DataFrame(data, columns=cols)
# 查找重复值
duplicates = df[df.duplicated(['Column_Name'])]
# 将结果写入 excel 文件中
for r in dataframe_to_rows(duplicates, index=False, header=True):
ws.append(r)
# 保存文件
wb.save('example.xlsx')
```
其中,'Column_Name' 是要查找重复值的列名。
相关问题
py合并两个excel重复项openpyxl
使用openpyxl库,可以很方便地合并两个excel文件并去掉重复项。下面是一个实现此功能的示例代码:
```python
import openpyxl
# 打开第一个excel文件
wb1 = openpyxl.load_workbook('file1.xlsx')
ws1 = wb1.active
# 打开第二个excel文件
wb2 = openpyxl.load_workbook('file2.xlsx')
ws2 = wb2.active
# 遍历第二个excel文件,将行数据逐行复制到第一个excel文件中
for row in ws2.iter_rows():
# 获取第二个excel文件每一行的数据
data = [cell.value for cell in row]
# 判断第一列数据在第一个excel文件中是否已存在
exists = False
for cell in ws1['A']:
if cell.value == data[0]:
exists = True
break
# 如果第一列数据不存在,则将整行数据添加到第一个excel文件的末尾
if not exists:
ws1.append(data)
# 保存合并后的excel文件
wb1.save('merged.xlsx')
```
以上代码首先使用`openpyxl`库分别打开了两个excel文件,并获取了它们的活动工作表。
然后,通过遍历第二个excel文件的每一行数据,判断第一列数据是否已经在第一个excel文件中存在。如果不存在,则将整行数据添加到第一个excel文件的末尾。
最后,使用`save()`方法保存合并后的excel文件。通过这个代码,我们可以将两个excel文件中所有不重复的行合并到一个新的excel文件中。
请注意,上述代码中使用了`file1.xlsx`和`file2.xlsx`作为示例文件名,请根据实际情况修改这两个文件名。
openpyxl在python中获取行中有用例对应的H列的内容
可以使用openpyxl库中的`load_workbook`函数加载Excel文件,然后使用`active`属性获取当前活动的worksheet,接着可以使用`iter_rows`方法逐行遍历worksheet,获取每行的内容并判断是否是有用的用例,如果是则可以使用`cell`属性获取H列的内容。以下是示例代码:
```python
from openpyxl import load_workbook
# 加载Excel文件
workbook = load_workbook(filename='example.xlsx')
# 获取当前活动的worksheet
worksheet = workbook.active
# 遍历每一行
for row in worksheet.iter_rows(min_row=2, values_only=True):
# 判断是否是有用的用例
if row[1] == 'test' and row[2] == 'positive':
# 获取H列的内容
h_value = worksheet.cell(row=row[0], column=8).value
print(h_value)
```
在上面的代码中,假设Excel文件中第一行为标题,从第二行开始是数据。代码中使用`iter_rows`方法遍历worksheet,参数`min_row=2`指定从第二行开始遍历,参数`values_only=True`指定只获取单元格的值而不是整个单元格对象。在判断当前行是否是有用的用例时,假设第一列是用例编号,第二列是用例类型(test或train),第三列是用例情感(positive或negative)。最后使用`cell`属性获取H列的内容,参数`row=row[0]`指定行号,`column=8`指定列号,因为H列是第8列。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)