import pandas as pd
import warnings
warnings.filterwarnings('ignore')  # 忽略警告信息

import pandas as pd  #导入pandas包
data = pd.read_csv(r'E:\PythonStudy\data.csv')  # 读取文件,路径可以是绝对路径/相对路径

c = data.columns.tolist()

for i in c:
    if data[i].dtype != 'object': 
        if data[i].isnull().sum() > 0: 
            mean_value = data[i].mean()
            data[i].fillna(mean_value, inplace=True)
print(data.isnull().sum())
discrete_lists = [] # 新建一个空列表,用于存放离散变量名
for discrete_features in data.columns:
    if data[discrete_features].dtype == 'object':
        discrete_lists.append(discrete_features)
data = pd.get_dummies(data, columns=discrete_lists, drop_first=True) 
print(data.columns)

data2 = pd.read_csv(r"E:\PythonStudy\data.csv")
list_final = [] # 新建一个空列表,用于存放独热编码后新增的特征名
for i in data.columns:
    if i not in data2.columns:
       list_final.append(i) # 这里打印出来的就是独热编码后的特征名

# 2.布尔值→整数型
for i in list_final:
    data[i] = data[i].astype(int) 

# 3.补值(用众数补值)
for i in data.columns:
    if data[i].isnull().sum() > 0: # 找到存在缺失值的列
        #计算该列的均值
        mean_value = data[i].mean()
        #用均值填充缺失值
        data[i].fillna(mean_value, inplace=True)

print(data.isnull().sum())

结果:

1.运行与调试

2.结果

@浙大疏锦行

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐