python数据导入与转换

    在利用机器学习对数据建立模型的过程中,首要的工作就是导入数据。导入数据的方法有很多:
    1、基于python本身io;
    2、基于numpy.load;
    3、pandas。
   当然最好用的是pandas,下面来简单介绍下pandas导入数据,并在导入过程中进行数据转换。
在我们的数据中,前1558列都是数字类型,而最后一列为字符串。我们自定义一个Converter_number函数,将空值转换为np.nan,字符串转换为0和1.
 
#--coding:utf-8
#忽略警告,有时候程序循环中警告过多
import warnings
warnings.filterwarnings("ignore")

import numpy as np
import pandas as pd
import os
from sklearn.neighbors import KernelDensity
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

filepath = os.path.join("../dataset/Internet Advertisements/Data Folder","ad.data")

#对DataFrame的列做数据转换
def Converter_number(x):
    try:
        return np.float64(x)
    except ValueError:
        return np.nan

#字典推导式,前1558列转换为float64,空值转换为np.nan
converters = {key:Converter_number for key in range(1558)}
#最后一列将字符串转换为1和0
converters[1558] = lambda x: 1 if x.strip()=='ad.' else 0
#利用read_csv读取文件,并转换
ads = pd.read_csv(filepath,header=None,converters=converters)
print(ads[:5])

if __name__ == "__main__":
    print("OK")
 
    虽然代码很短,但是用到了python很多经典的用法,希望初学者能够仔细阅读分析每一段代码。并且建议上网学习函数的参数解释和使用方法。

           

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值