python如何统计表格中去除重复数字的数组的数量
时间: 2024-02-25 11:56:26 浏览: 163
可以使用Python中的pandas库来读取表格数据,并使用set集合来统计表格中不重复的数字的数量,示例如下:
```python
import pandas as pd
# 读取表格数据
df = pd.read_excel('data.xlsx')
# 统计表格中不重复的数字的数量
unique_nums = set()
for col in df.columns:
if df[col].dtype == 'int64': # 判断列的数据类型是否为整型
arr = df[col].tolist() # 把列转换成列表
unique_nums.update(set(arr))
count = len(unique_nums)
print(count) # 输出表格中不重复的数字的数量
```
以上代码中,首先使用pandas库的read_excel函数读取Excel表格数据,并遍历表格的每一列。如果该列的数据类型为整型,则把该列转换成列表,并使用set集合来统计表格中不重复的数字的数量。最后统计所有列的不重复数字的数量,即可得到表格中不重复的数字的数量。
相关问题
python使用正则将excel某列数据中的数组去除
如果你想将Excel表格中某一列中的数组去除,可以使用Python中的正则表达式模块`re`。具体操作如下:
1. 首先需要安装`openpyxl`模块,`openpyxl`是一个用于处理Excel文件的Python库,可以通过以下命令进行安装:
```
pip install openpyxl
```
2. 打开Excel文件,并选中要操作的工作表,通过`openpyxl`模块中的`load_workbook()`和`active`方法进行:
```python
from openpyxl import load_workbook
wb = load_workbook('example.xlsx')
ws = wb.active
```
3. 利用正则表达式模块`re`对所选列进行操作,去除数组。可以使用`re.sub()`函数,将要去除的数组替换为空字符串(即删除),具体操作如下:
```python
import re
col_num = 1 # 要操作的列号
pattern = r'\[[\d,]*\]' # 数组的正则表达式
for i, cell in enumerate(ws.iter_rows(min_row=1, max_col=1, max_row=ws.max_row)): # 遍历每一行
if i == 0: # 跳过表头
continue
cell_value = cell[0].value
if cell_value is not None: # 如果单元格不为空
cell_value = re.sub(pattern, '', str(cell_value)) # 将数组替换为空字符串
cell[0].value = cell_value # 修改单元格的值
```
4. 最后,保存修改后的Excel文件:
```python
wb.save('example.xlsx')
```
完整代码如下:
```python
from openpyxl import load_workbook
import re
wb = load_workbook('example.xlsx')
ws = wb.active
col_num = 1 # 要操作的列号
pattern = r'\[[\d,]*\]' # 数组的正则表达式
for i, cell in enumerate(ws.iter_rows(min_row=1, max_col=1, max_row=ws.max_row)): # 遍历每一行
if i == 0: # 跳过表头
continue
cell_value = cell[0].value
if cell_value is not None: # 如果单元格不为空
cell_value = re.sub(pattern, '', str(cell_value)) # 将数组替换为空字符串
cell[0].value = cell_value # 修改单元格的值
wb.save('example.xlsx')
```
如何读取表中的三位数组
要读取表中的三维数组,可以使用Python中的第三方库,如Pandas。以下是一个示例代码:
```python
import pandas as pd
import numpy as np
# 读取表格数据
df = pd.read_csv("data.csv")
# 获取三维数组列的值
arr_str = df["array"].values[0]
# 将字符串转换为NumPy数组
arr = np.fromstring(arr_str[1:-1], sep=" ").reshape((3, 3, 3))
# 打印数组
print(arr)
```
在这个例子中,我们首先使用Pandas库中的`pd.read_csv()`函数读取一个CSV格式的表格数据,表格中包含了一个名为`array`的列,该列的值是一个三维数组的字符串表示。我们使用`df["array"].values`获取该列的所有值,然后取第一个元素`[0]`,因为我们只需要读取一行数据。接着,我们使用NumPy库中的`np.fromstring()`函数将字符串转换为NumPy数组。在这个函数中,我们使用`sep=" "`指定分隔符为空格,`[1:-1]`表示去掉字符串两端的方括号,最后使用`reshape()`函数将一维数组转换为三维数组。最终,我们使用`print()`函数打印出该数组。
阅读全文