将csv文件中的数值型数据行最小-最大规范化,将数值型数据转换到[0, 1]区间并展示
时间: 2024-10-17 22:04:39 浏览: 37
在Python中,我们可以使用pandas库来读取CSV文件并将数值型数据转换为最小-最大规范化(也称为z-score标准化),将其映射到[0, 1]区间。以下是步骤:
首先,我们需要导入所需的库:
```python
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
```
然后,我们读取CSV文件:
```python
df_csv = pd.read_csv('your_file.csv') # 替换为您的CSV文件路径
```
接下来,我们将数值列提取出来并进行最小-最大规范化:
```python
# 获取数值列
numerical_columns = df_csv.select_dtypes(include='number').columns.tolist()
# 初始化scaler
scaler = MinMaxScaler(feature_range=(0, 1))
# 对数值列应用缩放
normalized_df = pd.DataFrame(scaler.fit_transform(df_csv[numerical_columns]), columns=numerical_columns)
```
现在,`normalized_df`是一个新的DataFrame,其中所有数值列都被缩放到0和1之间。
为了展示原始和规范化数据的对比,你可以做如下的可视化:
```python
# 显示原始数值列的平均值和标准差
original_stats = df_csv[numerical_columns].describe()
print(f"Original Data Statistics:\n{original_stats}")
# 显示规范化后的数据范围
normalized_stats = normalized_df.describe()
print(f"\nNormalized Data Range (0 to 1):\n{normalized_stats}")
```
通过这两个统计数据,你可以看到原始数据的分布范围以及它们经过规范化之后的变化情况。
阅读全文