文中使用到的数据:
time = [1,2,3,4,5,6,7,8,9 ]
x = [19.47, 27.41, 27.92, 33.79, 38.00, 40.36, 51.70, 62.15, 78.58]
result = [0.759, 0.844, 0.868, 0.992, 1.092, 1.074, 1.099, 1.243, 1.342]
Python部分:
一、读取Excel
提到读取数据,就不得不说
p
a
n
d
a
s
pandas
pandas 这个库了,它可以读取的文件格式如图;对
E
x
c
e
l
Excel
Excel 表格进行数据分析时,常使用 read_csv
或者 read_excel
首先把 C:\Users\acer\Desktop\data analysis\Playing.xlsx 文件地址赋值给 filepath,然后使用 pd.read_excel( )
方法读取该文件,注意参数 sheet_name=1 意味着读取文件中的第二个表格
S
h
e
e
t
2
Sheet2
Sheet2
import pandas as pd
filepath = r'C:\Users\acer\Desktop\data analysis\Playing.xlsx'
df = pd.read_excel(filepath,sheet_name=1)
读取出来的
d
f
df
df 是一个数据框(即类型为
D
a
t
a
F
r
a
m
e
DataFrame
DataFrame )
二、删除df中不需要的列
注意到进行数据分析或者建模时,可能不需要用到 “ t i m e ” “time” “time” 这一列数据,所以利用 d r o p drop drop 方法(注意参数添加 a x i s = 1 axis=1 axis=1 ,表示对列进行操作)删除 d f df df 中的 “ t i m e ” “time” “time” 列
df = df.drop(['time'], axis = 1)
print(df)
若要同时删除多列,往中括号内继续添加要删除的列即可
# 举例:若df中有a、b、c列,删除df中的a、b、c列
df = df.drop(['a','b','c'], axis = 1)
三、列的重命名
除此之外,强迫症患者还可以把列名 “ r e s u l t ” “result” “result” 改成 “ y ” “y” “y” 便于建模时对变量的识别。
df['y'] = df['result'] #先把result列的值赋值给要新建的列备份
df = df.drop(['result'], axis = 1) #然后删除result列
print(df)
四、数据的使用
然后可以按照自己的建模需要,把相应的列提取出来转成 n p np np 对象,用于建模。注意“0”代表第1列、以此类推
import numpy as np
x = df.iloc[:,0] #第一列命名为x
x = x.to_numpy()
y = df.iloc[:,1] #第二列命名为y
y = y.to_numpy()
R R R
一、读取 E x c e l Excel Excel
R语言一般使用
x
l
s
x
xlsx
xlsx 包 读取
E
x
c
e
l
Excel
Excel,但是参数的设置与
p
y
t
h
o
n
python
python 相比有所不同,如指定读取表格的参数
> library(xlsx)
> data = read.xlsx("C:/Users/acer/Desktop/data analysis/Playing.xlsx",2)
> print(data)
二、删除df中不需要的列
将
"
t
i
m
e
"
"time"
"time" 这一列删去,注意与
p
y
t
h
o
n
python
python 的区别——这里-1指的是删去第一列
删除多列:
data = data[, -1]
print(data)
####
data = data[,c(-1,-2)]
print(data)
删除指定(多)列:
注意:方式一、三删除列后若只剩余1列,类型仍为 d a t a . f r a m e data.frame data.frame,而方式二类型发生改变
方式一:使用 subset(数据框名字,select = -c(要删除的列1,... ))
方法。推荐使用
> data = subset(data, select = -c(time, result))
> data
方式二:构造一个布尔向量,结合 %in% 和这个向量来删除不需要的列。
首先要介绍下 names()
方法,用于
d
a
t
a
f
r
a
m
e
dataframe
dataframe 时的作用与 colnames()
方法一致;
然后 %in% 可以判断向量
a
a
a 内元素是否在
b
b
b 中,是则返回
t
r
u
e
true
true,否则
f
a
l
s
e
false
false
这时我们加上一个 ! ,就能使我们想删除的列在向量中对应的位置变成
F
a
l
s
e
False
False,把该向量命名为
d
e
l
del
del。
最后把这个向量放入
d
a
t
a
data
data 中,实现删除指定多列:
注意这时
d
a
t
a
data
data 从
d
a
t
a
.
f
r
a
m
e
data.frame
data.frame 类型变成了
n
u
m
e
r
i
c
numeric
numeric 类型
> names(data)
> names(data) %in% c('time','result')
> colnames(data) %in% c('time', 'result')
> del = !names(data) %in% c('time', 'result')
> print(del)
> data = data[, del]
> print(data)
> class(data)
方式三:使用 dplyr
包中的 select(数据框名字, -c(要删除的列1, ...))
方法进行删除
> install.packages('dplyr')
> library(dplyr)
> data = dplyr::select(data, -c(time, result))
> print(data)
三、列的重命名
重命名前,先使用方法
c
o
l
n
a
m
e
s
(
)
colnames()
colnames() 查看目前
d
f
df
df 中的所有列名
方式一:直接把向量赋值给
c
o
l
n
a
m
e
s
(
)
colnames()
colnames() 方法实现重命名
方式二:安装 plyr
包,使用它的 rename
方法实现重命名。较为便利(推荐),当列名总数量多且要重命名的列也多时,该方式比方式一快很多
print(colnames(data))
# 方式一
colnames(data) = c('x','y')
print(data)
# 方式二
install.packages('plyr')
data = plyr::rename(data, c('result'='y'))
四、数据的使用
该步骤中
R
R
R 相对于
p
y
t
h
o
n
python
python 会简单些,不需要转化成
n
u
m
p
y
numpy
numpy 数组,直接在
d
f
df
df中使用 $
引用即可
————————————————————————————————————————————————————
感谢观看,不足之处敬请指教