Python打卡DAY8

@浙大疏锦行

1.字典 用于储存键值对

  • 键(Key):必须是不可变类型(如字符串、整数、元组等),且唯一
  • 值(Value):可以是任意数据类型(如字符串、数字、列表,甚至是另一个字典)。

遍历字典的键

my_dict = {"name": "Alice", "age": 30, "city": "New York"}

print("\n--- 遍历字典的键 ---")
for key in my_dict:
  print(key)

遍历字典的值

print("\n--- 遍历字典的值 ---")
for value in my_dict.values():
  print(value)

值就是Alice 30 和New York 相对应

2.标签编码

之前提到离散数据 如果是不存在顺序,则采用独热编码,函数为pd.get_dummies()。

那么存在大小和顺序的离散特征则采用标签编码

import pandas as pd
data = pd.read_csv('data.csv')
data.head()

data["Home Ownership"].value_counts()

按照贷款严重程度来进行标签编码 这里也可以用独热编码 

即自有房小于租房小于有其他贷款小于有房贷

mapping = {
        "Own Home": 0,
        "Rent": 1,
        "Have Mortgage ": 2,
        "Home Mortgage": 3
    
}
data["Home Ownership"].head()

二分类问题的标签编码

mapping = {
    "Short Term": 1,
    "Long Term": 0
}

data["Term"] = data["Term"].map(mapping)
data["Term"].head()

同时对两个特征进行标签编码 做一个嵌套

import pandas as pd

data = pd.read_csv("data.csv")

mapping = {
    "Term": {
        "Short Term": 1,
        "Long Term": 0
    },
    "Home Ownership": {
        "Rent": 0,
        "Own Home": 1,
        "Have Mortgage  ": 2,
        "Home Mortgage": 3
    }
}

3.对annual income做归一化处理

def manual_normalize(data):
    min_val = data.min()
    max_val = data.max()
    normalized_data = (data - min_val) / (max_val - min_val)
    return normalized_data
data['Annual Income'] = manual_normalize(data['Annual Income'])
data['Annual Income'].head()

前面几行是函数的内容 最后打印数值归一化后的效果

标准化处理

data = pd.read_csv("data\data.csv")
scaler = StandardScaler() # 函数
data['Annual Income'] = scaler.fit_transform(data[['Annual Income']])
data['Annual Income'].head()

    

两者的差别

继续完成对心脏病数据集的预处理

import pandas as pd
data = pd.read_csv('heart.csv')
 
from sklearn.preprocessing import MinMaxScaler, StandardScaler
# 归一化
min_max_scaler = MinMaxScaler()
data["age"] = min_max_scaler.fit_transform(data[["age"]])
data["trestbps"] = min_max_scaler.fit_transform(data[["trestbps"]])
data["chol"] = min_max_scaler.fit_transform(data[["chol"]])
# 标准化
standard_scaler = StandardScaler()
data["thalach"] = standard_scaler.fit_transform(data[["thalach"]])
data["oldpeak"] = standard_scaler.fit_transform(data[["oldpeak"]])
 
print(data.head())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值