提取出df中‘label’中的值并且每3个值求平均存储在一个数组中
时间: 2024-03-05 20:52:27 浏览: 92
可以使用 Pandas 库和 NumPy 库来实现这个功能。假设 `df` 是包含 `label` 列的 Pandas DataFrame 对象,可以使用以下代码提取 `label` 列中的值并且每3个值求平均存储在一个数组中:
```python
import pandas as pd
import numpy as np
# 提取 'label' 列中的值
labels = df['label'].values
# 将 'label' 列中的值分组,每 3 个求平均
grouped_labels = np.mean(labels.reshape(-1, 3), axis=1)
# 输出结果
print(grouped_labels)
```
这里首先使用 `df['label']` 提取 `label` 列中的值,并将其保存在变量 `labels` 中。接着使用 `numpy` 库的 `reshape` 方法将 `labels` 变形为一个 3 列的矩阵,每 3 个值为一组。使用 `numpy` 库的 `mean` 方法对每一组进行求平均,得到一个 1 列的矩阵,每个元素为一组的平均值,保存在变量 `grouped_labels` 中。最终的结果即为 `grouped_labels`。
相关问题
提取出df中‘label’中的值并组成一个3*1的数组
可以使用 Pandas 库来实现这个功能。假设 `df` 是包含 `label` 列的 Pandas DataFrame 对象,可以使用以下代码提取 `label` 列中的值并组成一个 3x1 的数组:
```python
import pandas as pd
labels = df['label'].values[:3].reshape((3, 1))
```
这里首先使用 `df['label']` 提取 `label` 列中的值,然后使用 `.values` 将其转换为 NumPy 数组。接着使用切片 `[:3]` 取前三个值,并使用 `.reshape((3, 1))` 将其变形为一个 3x1 的数组。最终的结果存储在 `labels` 变量中。
df = pd.read_excel(io='E:\python文件\pythonProject\数据集.xlsx') all_data = df.values # 所有数据 特征+标签 permutation = np.random.choice(all_data.shape[0]) all_data = all_data[permutation, :] self.data = all_data[:, 0:3] # 提取特征集 self.label = all_data[:, 3] # 提取标签
这段代码的作用是从 Excel 文件中读取数据,将特征和标签分别存储到 self.data 和 self.label 中。其中,io 参数指定了 Excel 文件的路径,all_data 变量则是将 Excel 文件中的所有数据转换为 numpy 数组。此外,代码中使用了 np.random.choice() 函数来对 all_data 进行随机重排,permutation 变量则是存储了重排后的数组下标。最后,代码通过切片操作将 self.data 和 self.label 从 all_data 中提取出来。
需要注意的是,在使用 pd.read_excel() 函数时,需要提前安装 pandas 库,并且 Excel 文件的路径需要根据实际情况进行修改。另外,代码中提取特征和标签的方式是通过切片操作实现的,需要确保数据集的格式和特征、标签的位置符合要求。
阅读全文