特征工程

2023-05-16

一、数据读取

1.1 读取CSV文件

1.1.1 原文件内容

原文件内容

1.1.2 读取csv

import csv
csv_file = "/home/aistudio/data/data20465/cities.csv"
f = open(csv_file)
data = csv.reader(f)    # ①
for line in data:
    print(line)

1.1.3 pandas读取

import pandas as pd
df = pd.read_csv(csv_file)    # ②
df

1.1.4 查看信息

diabetes =pd.read_csv(csv_file, index_col=0) # 不读取index
diabetes.shape #查看形状
diabetes.head() #查看前5行数据
diabetes.info() #查看描述信息
diabetes.dtypes #查看各列数据类型

1.2 读取excel文件

1.2.1 安装第三方模块

# 安装第三方模块到上述目录
!pip install xlrd -t /home/aistudio/external-libraries
!pip install openpyxl -t /home/aistudio/external-libraries

1.2.2 读取excel

jiangsu = pd.read_excel("/home/aistudio/data/data20465/jiangsu.xls")

1.2.3 写入excel

jiangsu.to_excel('work/files/jiangsu.xlsx')

1.2.4 基础操作

cpi = pd.read_excel("/home/aistudio/data/data20465/cpi.xls")
cpi.columns = cpi.iloc[1]    # ⑤
cpi = cpi[2:]    # ⑥
cpi.drop([11, 12], axis=0, inplace=True)    # ⑦
cpi['cpi_index'] = ['总体消费', '食品烟酒', '衣着', '居住', '生活服务', '交通通信', '教育娱乐', '医保', '其他']    # ⑧
cpi.drop(['指标'], axis=1, inplace=True)    # ⑨
cpi.reset_index(drop=True, inplace=True)    # ⑩
cpi.columns.rename('', inplace=True)    # ⑪
cpi

1.3 读取数据库数据

import pymysql
mydb = pymysql.connect(host="localhost",    # ①
                       user='root',
                       password='1q2w3e4r5t',
                       db="books",
                      )
cursor = mydb.cursor()    # ②
sql = "select * from mybooks"    # ③
cursor.execute(sql)    # ④
datas = cursor.fetchall()    # ⑤
for data in datas:
    print(data)
sql_count = "SELECT COUNT(1) FROM city"
cursor.execute(sql_count)
n = cursor.fetchone()    # 获得一个返回值
n

1.4 读取来着API的数据

import requests
response = requests.get("https://api.github.com/users/qiwsir")    # ①
response.json()

在这里插入图片描述

import pandas as pd
data = response.json()    # ②
login = data['login']     # ③
name = data['name']
blog = data['blog']
public_repos = data['public_repos']
followers = data['followers']
html_url = data['html_url']
df = pd.DataFrame([[login, name, blog, public_repos, followers, html_url]], 
                  columns=['login', 'name', 'blog', 'public_repos', 'followers', 'html_url'])    # ④
df

在这里插入图片描述

二、数据清理

2.1 数据查看

import pandas as pd
df = pd.read_csv("/home/aistudio/data/data20505/pm2.csv")
df.sample(10)

在这里插入图片描述

df.shape  # (264, 4)
df.info() #查看信息

在这里插入图片描述

df.dtypes

在这里插入图片描述

2.2 转换数据类型

import pandas as pd
df = pd.DataFrame([{'col1':'a', 'col2':'1'}, 
                           {'col1':'b', 'col2':'2'}])
df.dtypes

在这里插入图片描述

df['col2-int'] = df['col2'].astype(int)    # ①
df.dtypes

在这里插入图片描述

s = pd.Series(['1', '2', '4.7', 'pandas', '10'])    
s.astype(float, errors='ignore')

在这里插入图片描述

pd.to_numeric(s, errors='coerce')

在这里插入图片描述

import pandas as pd
df = pd.read_csv('/home/aistudio/data/data20506/sales_types.csv') 
df.info()

在这里插入图片描述

df[['Customer Number']]

在这里插入图片描述

df['Customer Number'].astype(int).astype(str)

在这里插入图片描述

df[['2016', '2017']]

在这里插入图片描述

def convert_money(value):
    new_value = value.replace("$","").replace(",","")  # ②
    return float(new_value)

df['2016'].apply(convert_money)    # ③
df[['Percent Growth']]

在这里插入图片描述

df['Percent Growth'].apply(lambda x: float(x.replace("%", "")) / 100)

在这里插入图片描述

df[['Active']]

在这里插入图片描述

import numpy as np
np.where(df['Active']=='Y', 1, 0)

在这里插入图片描述

df[['Year', 'Month', 'Day']]

在这里插入图片描述

pd.to_datetime(df[['Month', 'Day', 'Year']])

在这里插入图片描述

2.3 处理重复数据

import pandas as pd
d = {'Name':['Newton', 'Galilei', 'Einstein', 'Feynman', 'Newton', 'Maxwell', 'Galilei'],
             'Age':[26, 30, 28, 28, 26, 39, 40],
             'Score':[90, 80, 90, 100, 90, 70, 90]}
df = pd.DataFrame(d,columns=['Name','Age','Score'])
df

在这里插入图片描述

df.duplicated()

在这里插入图片描述

df.duplicated('Age', keep='last')  #保留最后一个

在这里插入图片描述

df.duplicated(['Age', 'Score'])
df.drop_duplicates() #删除重复值
#df.drop_duplicates('Age', keep='last')

在这里插入图片描述

2.4 缺失值处理

2.4.1 判断缺失值

df = pd.DataFrame({"one":[1, 2, np.nan], "two":[np.nan, 3, 4]})
df.isna()
hitters = pd.read_csv("/home/aistudio/data/data20507/Hitters.csv")
hitters.isna().any()

在这里插入图片描述

(hitters.shape[0] - hitters.count()) / hitters.shape[0]

在这里插入图片描述

2.4.2 删除缺失值

df.dropna(axis=0, how='all')    # how声明删除条件
df.dropna(thresh=2)    # 非缺失值小于2的删除
new_hitters = hitters.dropna()
new_hitters.isna().any()

2.4.3 用指定值填充缺失值

df = pd.DataFrame({'ColA':[1, np.nan, np.nan, 4, 5, 6, 7], 'ColB':[1, 1, 1, 1, 2, 2, 2]})
df['ColA'].fillna(method='ffill')
pdf['Height-na'].fillna(pdf['Height-na'].mean(), inplace=True)   
pdf
pdf2 = persons.sample(20)
pdf2['Height-na'] = np.where(pdf2['Height'] % 5 == 0, np.nan, pdf2['Height'])    # 制造缺失值

from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')    # ③
col_values = imp_mean.fit_transform(pdf2['Height-na'].values.reshape((-1, 1)))    # ④
col_values

2.5 处理异常值

2.5.1 查看异常值

%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("/home/aistudio/data/data20510/experiment.csv", index_col=0)

fig, ax = plt.subplots()
ax.scatter(df['alpha'], df['belta'])

在这里插入图片描述

import seaborn as sns
sns.set(style="whitegrid")

tips = sns.load_dataset("tips")    #加载数据集
tips.sample(5)

在这里插入图片描述

sns.boxplot(x="day", y="tip", data=tips, palette="Set3")

在这里插入图片描述

ax = sns.boxplot(x="day", y="tip", data=tips)
ax = sns.swarmplot(x="day", y="tip", data=tips, color=".25")   

三、特征变换

3.1 特征数值化

import pandas as pd
df = pd.DataFrame({"gene_segA": [1, 0, 0, 1, 1, 1, 0, 0, 1, 0],
                   "gene_segB": [1, 0, 1, 0, 1, 1, 0, 0, 1, 0],
                   "hypertension": ["Y", 'N', 'N', 'N', 'N', 'N', 'Y', 'N', 'Y', 'N'],
                   "Gallstones": ['Y', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'N', 'Y']
                  })
df

在这里插入图片描述

df.replace({"N": 0, 'Y': 1})

在这里插入图片描述

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit_transform(df['hypertension'])
le.fit_transform([1, 3, 3, 7, 3, 1])
le.inverse_transform([0, 1, 1, 2, 1, 0])

在这里插入图片描述

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()    # ①
le.fit(['white', 'green', 'red', 'green', 'white'])    # ②
le.classes_    # ③
#out : array(['green', 'red', 'white'], dtype='<U5')
le.transform(["green", 'green', 'green', 'white'])    # ④
# array([0, 0, 0, 2])

3.2 特征二值化

import pandas as pd
pm25 = pd.read_csv("/home/aistudio/data/data20505/pm2.csv")
pm25.head()

在这里插入图片描述

import numpy as np
pm25['bdays'] = np.where(pm25["Exposed days"] > pm25["Exposed days"].mean(), 1, 0)
pm25.sample(10)

在这里插入图片描述

from sklearn.preprocessing import Binarizer
bn = Binarizer(threshold=pm25["Exposed days"].mean())    # ①
result = bn.fit_transform(pm25[["Exposed days"]])   # ②
pm25['sk-bdays'] = result
pm25.sample(10)

在这里插入图片描述

3.3 OneHot编码

persons = pd.DataFrame({"name":["Newton", "Andrew Ng", "Jodan", "Bill Gates"], 'color':['white', 'yellow', 'black', 'white']})
persons

在这里插入图片描述

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder()
features = ohe.fit_transform(persons[['color']])
features.toarray()

在这里插入图片描述

size_mapping = {'XL': 3, 'L': 2, 'M': 1}
df['size'] = df['size'].map(size_mapping)    # ②
df

在这里插入图片描述

3.4 数据变换

import numpy as np
data.drop([0], inplace=True)    # 去掉0,不计算log0
data['logtime'] = np.log10(data['time'])    # ①
data['logloc'] = np.log10(data['location'])    # ②
data.head()

3.5 特征离散化

ages2 = pd.DataFrame({'years':[10, 14, 30, 53, 300, 32, 45], 'name':['A', 'B', 'C', 'D', 'E', 'F', 'G']})
klass2 = pd.cut(ages2['years'], 3, labels=['Young', 'Middle', 'Senior'])    # ②
ages2['label'] = klass2
ages2
ages2 = pd.DataFrame({'years':[10, 14, 30, 53, 300, 32, 45], 'name':['A', 'B', 'C', 'D', 'E', 'F', 'G']})
klass2 = pd.cut(ages2['years'], bins=[9, 30, 50, 300], labels=['Young', 'Middle', 'Senior'])    # ③
ages2['label'] = klass2
ages2

在这里插入图片描述

3.6 数据规范化

from sklearn import datasets
from sklearn.preprocessing import StandardScaler 
iris = datasets.load_iris()
iris_std = StandardScaler().fit_transform(iris.data) 

在这里插入图片描述

from sklearn.preprocessing import MinMaxScaler
iris_mm = MinMaxScaler().fit_transform(iris.data)    # ②
iris_mm[:5]

四、特征选择

4.1 过滤器法


from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest    # ①
from sklearn.feature_selection import chi2    
iris = load_iris()
X, y = iris.data, iris.target
skb = SelectKBest(chi2, k=2)    # ②
result = skb.fit(X, y)    # ③
print("X^2 is: ", result.scores_)
print("P-values is: ", result.pvalues_)

4.2 嵌入法

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import LogisticRegression

df_wine = pd.read_csv("/home/aistudio/data/data20527/wine_data.csv")
X, y = df_wine.iloc[:, 1:], df_wine.iloc[:, 0].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0, stratify=y)

std = StandardScaler()
X_train_std = std.fit_transform(X_train)
X_test_std = std.fit_transform(X_test)

lr = LogisticRegression(C=1.0, penalty='l1')    # ①
model = SelectFromModel(lr, threshold='median')    # ②
X_new = model.fit_transform(X_train_std, y_train)
X_new.shape

五、特征抽取

5.1 无监督特征抽取

from sklearn.decomposition import PCA
import numpy as np
pca = PCA()    # ①
X_pca = pca.fit_transform(X)    # ②
np.round(X_pca[: 4], 2)    # ③
pca = PCA(n_components=2)    # ④
X_pca = pca.fit_transform(X)
X_pca[: 4]

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X_train, X_test, y_train, y_test = train_test_split(X, iris.target,
                                                   test_size=0.3, 
                                                    random_state=0)
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)

X_train_pca, X_test_pca, y_train_pca, y_test_pca = train_test_split(X_pca, iris.target,
                                                   test_size=0.3, 
                                                    random_state=0)
clf2 = DecisionTreeClassifier()
clf2.fit(X_train_pca, y_train_pca)
y_pred_pca = clf2.predict(X_test_pca)
accuracy2 = accuracy_score(y_test_pca, y_pred_pca)

print("dataset with 4 features: ", accuracy)
print("dataset with 2 features: ", accuracy2)

5.2 有监督特征抽取

from sklearn.datasets.samples_generator import make_classification
X,y = make_classification(n_samples=1000,
                          n_features=4,
                          n_redundant=0,
                          n_classes=3,
                          n_clusters_per_class=1,
                          class_sep=0.5,
                          random_state=10)
X.shape, y.shape
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

特征工程 的相关文章

  • PyCharm上传本地项目到GitLab - MacOS版

    登录GitLab 创建一个项目 填写项目名称 xff0c 选择显示级别 复制GitLab的这个项目地址 xff0c 后面会在PyCharm里面用到 PyCharm操作 从PyCharm打开本地项目 xff0c 然后创建本地代码仓库 xff0
  • 【Python】使用Scrapy 网络爬虫框架Demo

    安装 使用PyCharm安装 xff0c 进入到PyCharm gt Preferences gt Project Interpreter xff0c 点击加号 查询框输入 Scrapy xff0c 点击 Install Package 使
  • Docker+Selenium Grid运行UI自动化

    简介 使用Selenium Grid可以分布式运行UI自动化测试 xff0c 可以同时启动多个不同的浏览器 xff0c 也可以同时启动同一个浏览器的多个session 这里使用Docker Compose来同时启动不同浏览器的容器和Sele
  • python-生成HTMLTestRunner测试报告

    一 安装HTMLTestRunner HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展 xff0c 它可以生成 HTML的 测试报告 首先要下 HTMLTestRunner py 文件 xff0c
  • Jenkins发送测试报告邮件

    简介 总结怎么使用Jenkins执行自动化测试后发送测试报告邮件 一 系统设置 1 在Jenkins安装Email Extension Plugin插件 xff0c 如下图 xff1a 2 设置Extended E mail Notific
  • Java读取csv文件

    简介 xff1a 总结用java通过读取csv文件方法 xff0c 为用csv文件来做数据驱动测试提供解决方案 创建csv文件 用WPS表格或excel创建文件 xff0c 填写数据 xff0c 另存为选择CSV格式进行保存 xff0c 如
  • MikroTik RouterOS上网设置

    本文是一篇关于MikroTik Routeros上网配置的示例文章 xff0c 适合有一定RouterOS路由器配置基础的同学学习 网络拓扑如下图 xff0c 家用WIFI已配置并正常上网 xff0c 接口地址如图所示 xff08 大家凑合
  • 搭建PHP开发环境(Apache+PHP+MySQL)

    简介 xff1a 总结在Windows环境搭建PHP开发环境 xff08 Apache 43 PHP 43 MySQL xff09 安装Apache 1 下载Apache xff0c 地址 xff1a http www apacheloun
  • Java读取Excel文件

    简介 xff1a 总结Java读取Excel文件 添加maven依赖 lt dependency gt lt groupId gt org apache poi lt groupId gt lt artifactId gt poi ooxm
  • 【python】Pytest+Request+Allure+Jenkins 接口自动化测试Demo

    摘要 xff1a 用postman的一个接口为例子 xff0c 做了一个接口自动化测试 xff0c 使用Pytest 43 Request 43 Allure 43 Jenkins 框架 xff0c 现在加以总结 技术栈 xff1a pyt
  • windows django生产用

    mod wsgi 下载 注意 xff1a 下载mod wsgi so版本需和python和apache匹配 http www lfd uci edu gohlke pythonlibs mod wsgi 我之前下过一个对应apache22和
  • 2021-02-19

    升级从版本5 5到6 x的VMware ESXi 转自 xff1a https www cisco com c zh cn support docs servers unified computing vmware esxi cisco u
  • zabbix 5.4在 CentOS8.3中的安装(mysql8/php7)

    0x1 安装 zabbix包及各种必用软件和依赖 rpm Uvh https repo zabbix com zabbix 5 4 rhel 8 x86 64 zabbix release 5 4 1 el8 noarch rpm dnf
  • win32 编程中,在调试窗口中显示内容的方法

    void myprintf string x TCHAR a 64 sprintf s a 34 这是方向 xff1a s n 34 x OutputDebugString a
  • win32下 多线程(多一个线程)GDI 坦克大战

    一个字 累并快乐 xff0c 兴趣索然 追回梦想 学习WINDOWS编程2个月 下一步 xff1a DIrectX9 自己加载资源 xff1a 素材在下面自行下载 xff08 修改成BMP格式 xff09 resource h NO DEP
  • Mac OS + Python3.7 + Django2.1 + uwsgi + nginx + mysql web发布环境搭建

    参考 xff1a http www mamicode com info detail 2073464 html 1 安装 brew https brew sh usr bin ruby e 34 curl fsSL https raw gi
  • Mac版 PyCharm 2018.3.3 激活 2019.1.12

    https blog csdn net qq 27686779 article details 78870816 https blog csdn net jayo70 article details 84622014
  • ubuntu 20.04安装mysql 8.0.28

    最近在ubuntu20 04安装配置mysql 8 0 28 时遇到了一点小麻烦 xff0c 而这些问题应该是高手不屑一顾 xff0c 而新手又无从下手的 xff0c 现在我把我的解决过程写下来 xff0c 以备后用 1 安装 span c
  • 手写插件:使 Chrome 增加 右键菜单项 实现多搜索

    参考 xff1a https www cnblogs com kevin Y p 10119838 html 1 随地创建一个文件包并命名 2 文件包内创建以下文件 xff1a 2 1 manifest json 34 manifest v
  • Mac上使用clion基于cmake 开发gtk gtk+

    gtk gtk 43 度娘介绍 xff1a GTK 43 xff08 GIMP Toolkit 是一套源码以LGPL许可协议分发 跨平台的图形工具包 最初是为GIMP写的 xff0c 已成为一个功能强大 设计灵活的一个通用图形库 xff0c

随机推荐

  • Mac上使用clion基于cmake 开发qt

    安装软件 清华 在线安装的qt安装器 https mirror tuna tsinghua edu cn qt archive online installers 3 0 里面选择项如下 xff1a 红色区域必选一项 xff0c 紫色区域自
  • docker make

    FROM debian 10 RUN apt get update amp amp apt get install y no install recommends curl python3 vim python3 distutils sql
  • U-SEM体验模型——让游戏交互设计的维度更加清晰

    U SEM体验模型 让游戏交互设计的维度更加清晰 U SEM体验模型 让游戏交互设计的维度更加清晰游戏交互设计的定位游戏交互设计的场景游戏对玩家输出玩家对游戏输入 游戏交互体验的维度 U SEM体验模型游戏交互的复杂度游戏交互设计的应用 游
  • Android 12 WiFi 连接状态轮转

    WiFi 学习资料整理 gt nbsp nbsp Android WiFi 目录 WiFi 学习资料整理 gt nbsp nbsp Android WiFi 1 nbsp WifiClientModeImpl和WPA Supplicant状
  • 扩展卡尔曼滤波(EKF)算法详细推导及仿真(Matlab)

    扩展卡尔曼滤波 xff08 EKF xff09 算法详细推导及仿真 xff08 Matlab xff09 扩展卡尔曼滤波算法是解决非线性状态估计问题最为直接的一种处理方法 xff0c 尽管EKF不是最精确的 最优 滤波器 xff0c 但在过
  • Linux中线程的同步与互斥、生产者消费模型和读者写者问题、死锁问题

    线程的同步与互斥 线程是一个存在进程中的一个执行控制流 xff0c 因为线程没有进程的独立性 xff0c 在进程内部线程的大部分资源数据都是共享的 xff0c 所以在使用的过程中就需要考虑到线程的安全和数据的可靠 不能因为线程之间资源的竞争
  • 解决The following packages have unmet dependencies问题!!!

    1 安装包的时候出现如下情况 xff08 缺少依赖 xff09 xff1a 2 解决方案 xff1a 尝试多种方法无果 xff0c 最终借助一个强大的包管理工具 xff08 aptitude xff09 终于成功了 xff01 xff01
  • linux的开机过程

    1 主机加电自检 xff0c 加载 BIOS 硬件信息 2 读取 MBR 的引导文件 GRUB LILO 3 引导 Linux 内核 4 运行第一个进程 init 进程号永远为 1 5 进入相应的运行级别 6 运行终端 xff0c 输入用户
  • Ubunt 20.04 使用CDROM或ISO作为安装源

    有些项目由于安全性的要求 xff0c 需要部署在没有互联网环境的内网中 xff0c 那么如何在离线环境中给ubuntu安装相关的软件就是考验大家的linux基础知识的时候了 本文就带领大家利用CDROM或者挂载ISO镜像两种方式配置ubun
  • 关于Intellij idea 报错:Error : java 不支持发行版本5的问题

    在Intellij idea中新建了一个Maven项目 xff0c 运行时报错如下 xff1a Error java 不支持发行版本5 本地运行用的是JDK9 xff0c 测试Java的Stream操作 xff0c 报错应该是项目编译配置使
  • Spring之配置类源码深度解析

    这篇文章是继 Spring之启动过程源码解析之后 xff0c 对Spring启动过程中用到的几个重要的方法进行详细的解读 目录 一 invokeBeanFactoryPostProcessors xff0c 执行BeanFactoryPos
  • 20210702剑指Offer03(数组中重复数字)

    找出数组中重复的数字 输入 xff1a 2 3 1 0 2 5 3 输出 xff1a 2 或 3 span class token keyword class span span class token class name Solutio
  • react异步数据如ajax请求应该放在哪个生命周期?

    对于同步的状态改变 xff0c 是可以放在componentWillMount xff0c 对于异步的 xff0c 最好好放在componentDidMount 但如果此时有若干细节需要处理 xff0c 比如你的组件需要渲染子组件 xff0
  • RabbitMQ exchange交换机机制

    目录 RabbitMQ 概念exchange交换机机制 什么是交换机binding xff1f Direct Exchange交换机Topic Exchange交换机Fanout Exchange交换机Header Exchange交换机R
  • 解决open-vm-tools无法复制粘贴文件问题

    在使用vmware kali linux时一直忍受着一个情况 xff1a open vm tools Error when getting information for file 34 tmp VMwareDnD 3jTONh xxx N
  • mipmap 和 drawable 的区别

    Android 在 API level 17 加入了 mipmap 技术 xff0c 对 bitmap 图片的渲染支持 mipmap 技术 xff0c 来提高渲染的速度和质量 mipmap 是一种很早就有的技术了 xff0c 翻译过来就是纹
  • LSTM与GRU

    LSTM 与 GRU 一 综述 LSTM 与 GRU是RNN的变种 xff0c 由于RNN存在梯度消失或梯度爆炸的问题 xff0c 所以RNN很难将信息从较早的时间步传送到后面的时间步 LSTM和GRU引入门 xff08 gate xff0
  • Pytorch 实战RNN

    一 简单实例 span class token comment coding utf8 span span class token keyword import span torch span class token keyword as
  • Pytorch : Dataset和DataLoader

    一 综述 Dataset 对数据进行抽象 xff0c 将数据包装为Dataset类 DataLoader 在 Dataset之上对数据进行进一步处理 xff0c 包括进行乱序处理 xff0c 获取一个batch size的数据等 二 Dat
  • 特征工程

    一 数据读取 1 1 读取CSV文件 1 1 1 原文件内容 1 1 2 读取csv span class token keyword import span csv csv file span class token operator 6